Bash: разыменовать symlink
-
- Sr. Member
- Сообщения: 286
- Зарегистрирован: 07 июн 2006 16:10
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
Народ, кто знает как в bash получить полный путь к файлу, на который указывает символическая ссылка?
Танки пробок не боятся...
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
типа того а я вот без тырнета 3 недели. попробуй сделать такое:
ls -l sym_link
file sym_link
ls -l sym_link
file sym_link
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Hatred's Log Place | My GitHub repos | My Gitlab repos
-
- Sr. Member
- Сообщения: 286
- Зарегистрирован: 07 июн 2006 16:10
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
Не, надо чтобы на выходе был просто путь к файлу, чтобы в скрипте было легко юзать. Я уже откопал readlink, но если кто знает как это делать только башем (без внешних команд), то делитесь.
Танки пробок не боятся...
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
ну как пример:
cd dev
ls -l dsp | gawk -F'-> ' '{print($2)}'
с другой стороны, то что ты нашель, readlink - он в составе coreutils, и что бы их не стояло... хотя если какие busybox, хотя....
а в баше ессесно использовать:
resolve=$(ls -l dsp | gawk -F'-> ' '{print($2)}')
или
resolve=$(readlink dsp)
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's Log Place | My GitHub repos | My Gitlab repos
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
а вот сам баш, это по сути клей для разных команд, зачем ему уметь то что впринципе не нужно оболочке уметь? это равносильно если просить сделать ln внутренней командой баша.
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Hatred's Log Place | My GitHub repos | My Gitlab repos
-
- Sr. Member
- Сообщения: 286
- Зарегистрирован: 07 июн 2006 16:10
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
ну мало ли. Ведь умеет же проверять существование файлов и права на них (-x).а вот сам баш, это по сути клей для разных команд, зачем ему уметь то что впринципе не нужно оболочке уметь?
Танки пробок не боятся...
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
это делает команда 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
Hatred's Log Place | My GitHub repos | My Gitlab repos
-
- Sr. Member
- Сообщения: 286
- Зарегистрирован: 07 июн 2006 16:10
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
Есть внешние для sh, а в bash они встроены.
man bash:
# test -x /usr/bin/test || echo error
error
# test -x /usr/bin/test1 && echo "test1: Ok"
test1: Ok
man bash:
# mv /usr/bin/test /usr/bin/test1CONDITIONAL 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.
# test -x /usr/bin/test || echo error
error
# test -x /usr/bin/test1 && echo "test1: Ok"
test1: Ok
Танки пробок не боятся...
- hatred
- Global Moderator
- Сообщения: 1205
- Зарегистрирован: 08 июн 2006 00:32
- Откуда: Владивосток
- Контактная информация:
Bash: разыменовать symlink
Гм, не обращал внимания, ну и ладно в любом случае - для линка нету
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Hatred's Log Place | My GitHub repos | My Gitlab repos