З'ясуйте, яким би був несимвольний шлях?


10

Якщо в Linux я колись перебрався і зараз перебуваю в каталозі, чи є спосіб зрозуміти, який реальний шлях до цього каталогу, якби я не використовував символічне посилання, щоб потрапити туди?

Поміркуйте:

$ 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?

Відповіді:


13

Для використання 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 повертає несинхронізований шлях до цього файлу, тому я хочу. Дякую!
Девід Макінтош

1
так, я завжди використовував / bin / pwd, оскільки не може знати, як він потрапив, де є, на відміну від вбудованої оболонки pwd. Очевидно еквівалент pwd -P.
Пітер Кордес

ls -lda чомусь не працює для прихованих символьних посилань
Casebash

2

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


0

Я використав альтернативний метод,

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

Нова вкладка pwd, дає симпосилання. ;)


Вибачте, яку оболонку, менеджер вікон або термінал ви тут використовуєте?
Девід Макінтош

Я думаю, що він говорить про gnome-термінал
престомація

Так, я говорив про термінал Гном.
Лакшман Прасад
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.