Bash: разыменовать symlink

Всё о линукс сообществе Владивостока, организационные вопросы и предложения, проекты, линуксовки
Ответить
loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение loooser »

Народ, кто знает как в bash получить полный путь к файлу, на который указывает символическая ссылка?
Танки пробок не боятся...

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение loooser »

Блин, форум в конец заброшен :(
Танки пробок не боятся...

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение hatred »

типа того а я вот без тырнета 3 недели. попробуй сделать такое:
ls -l sym_link
file sym_link
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение loooser »

Не, надо чтобы на выходе был просто путь к файлу, чтобы в скрипте было легко юзать. Я уже откопал readlink, но если кто знает как это делать только башем (без внешних команд), то делитесь.
Танки пробок не боятся...

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение hatred »

ну как пример:
cd dev
ls -l dsp | gawk -F'-> ' '{print($2)}'

с другой стороны, то что ты нашель, readlink - он в составе coreutils, и что бы их не стояло... хотя если какие busybox, хотя....

а в баше ессесно использовать:
resolve=$(ls -l dsp | gawk -F'-> ' '{print($2)}')
или
resolve=$(readlink dsp)
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение hatred »

а вот сам баш, это по сути клей для разных команд, зачем ему уметь то что впринципе не нужно оболочке уметь? это равносильно если просить сделать ln внутренней командой баша.
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение loooser »

а вот сам баш, это по сути клей для разных команд, зачем ему уметь то что впринципе не нужно оболочке уметь?

ну мало ли. Ведь умеет же проверять существование файлов и права на них (-x).
Танки пробок не боятся...

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение hatred »

это делает команда test или её так сказать алиас [:

Код: Выделить всё

[hatred@gaz ~]$ which [
/usr/bin/[
[hatred@gaz ~]$ which test
/usr/bin/test
[hatred@gaz ~]$ file /usr/bin/[
/usr/bin/[: symbolic link to `test'
[hatred@gaz ~]$
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

loooser
Sr. Member
Sr. Member
Сообщения: 286
Зарегистрирован: 07 июн 2006 16:10
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение loooser »

Есть внешние для sh, а в bash они встроены.
man bash:
CONDITIONAL EXPRESSIONS
Conditional expressions are used by the [[ compound command and the test
and [ builtin commands to test file attributes and perform string and
arithmetic comparisons.

# mv /usr/bin/test /usr/bin/test1
# test -x /usr/bin/test || echo error
error
# test -x /usr/bin/test1 && echo "test1: Ok"
test1: Ok
Танки пробок не боятся...

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

Bash: разыменовать symlink

Сообщение hatred »

Гм, не обращал внимания, ну и ладно :) в любом случае - для линка нету
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

Ответить