Выясните, какой будет путь без символической ссылки?

1242
David Mackintosh

В Linux, если у меня есть cd'd и я сейчас в каталоге, есть ли способ выяснить, каков реальный путь к этому каталогу, если я не использовал символическую ссылку, чтобы туда попасть?

Рассматривать:

$ pwd /home/dave/tmp $ mkdir -p 1/2/3/4/5 $ ln -s 1/2/3/4/5 5 $ cd 5 $ pwd  /home/dave/tmp/5 

Или же:

$ pwd /home/dave/tmp $ mkdir -p 1/2/3/4/5 $ ln -s 1/2/3/4 4 $ cd 4/5 $ pwd  /home/dave/tmp/4/5 

Есть ли способ выяснить, что / home / dave / tmp / 5 действительно / home / dave / 1/2/3/4/5?

10

3 ответа на вопрос

13
jtbandes

Для использования с cd, используйте pwd -P:

$ pwd /home/dave/tmp $ mkdir -p 1/2/3/4/5 $ ln -s 1/2/3/4/5 5 $ cd 5 $ pwd  /home/dave/tmp/5 $ pwd -P /home/dave/tmp/1/2/3/4/5 

Для общих символических ссылок используйте readlink:

$ cd .. $ readlink 5 1/2/3/4/5 

Или ls -l-dдля каталогов):

$ ls -ld 5 lrwxr-xr-x 1 dave staff 9 Jul 24 10:10 5 -> 1/2/3/4/5 
readlink -f file возвращает несимвольный путь к этому файлу, что я и хочу. Спасибо! David Mackintosh 14 лет назад 0
да, я всегда использовал / bin / pwd, так как он не может знать, как он туда попал, в отличие от встроенной оболочки pwd. Очевидно эквивалентно pwd -P. Peter Cordes 14 лет назад 1
ls -lda почему-то не работает для скрытых ссылок sym Casebash 13 лет назад 0
2
Ryan Thompson

Вы хотите или readlink -f(в coreutils, установленном по умолчанию) или более легко запоминающийся realpath, который вы должны установить.

0
Lakshman Prasad

Альтернативный метод, который я использовал,

cd to the symlink Ctrl+Shift+T #To open a new tab pwd 

Новая вкладка pwd, дает символическую ссылку. ;)

Извините, какую оболочку, оконный менеджер или терминал вы используете здесь? David Mackintosh 14 лет назад 0
Я думаю, что он говорит о гном-терминале prestomation 14 лет назад 0
Да, я говорил о Терминале Гнома. Lakshman Prasad 14 лет назад 0

Похожие вопросы