Страница 1 из 1

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

Добавлено: 17 июл 2007 22:34
loooser
Народ, кто знает как в bash получить полный путь к файлу, на который указывает символическая ссылка?

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

Добавлено: 23 июл 2007 16:24
loooser
Блин, форум в конец заброшен :(

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

Добавлено: 05 авг 2007 14:24
hatred
типа того а я вот без тырнета 3 недели. попробуй сделать такое:
ls -l sym_link
file sym_link

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

Добавлено: 05 авг 2007 20:29
loooser
Не, надо чтобы на выходе был просто путь к файлу, чтобы в скрипте было легко юзать. Я уже откопал readlink, но если кто знает как это делать только башем (без внешних команд), то делитесь.

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

Добавлено: 06 авг 2007 01:04
hatred
ну как пример:
cd dev
ls -l dsp | gawk -F'-> ' '{print($2)}'

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

а в баше ессесно использовать:
resolve=$(ls -l dsp | gawk -F'-> ' '{print($2)}')
или
resolve=$(readlink dsp)

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

Добавлено: 06 авг 2007 01:06
hatred
а вот сам баш, это по сути клей для разных команд, зачем ему уметь то что впринципе не нужно оболочке уметь? это равносильно если просить сделать ln внутренней командой баша.

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

Добавлено: 10 авг 2007 09:10
loooser
а вот сам баш, это по сути клей для разных команд, зачем ему уметь то что впринципе не нужно оболочке уметь?
ну мало ли. Ведь умеет же проверять существование файлов и права на них (-x).

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

Добавлено: 11 авг 2007 15:09
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 ~]$

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

Добавлено: 13 авг 2007 19:20
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

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

Добавлено: 15 авг 2007 18:06
hatred
Гм, не обращал внимания, ну и ладно :) в любом случае - для линка нету