Пошук вихідного файлу символічного посилання


20

Отже, скажімо, у мене є символічне посилання файлу в моєму домашньому каталозі до іншого файлу на іншому розділі. Як я можу знайти цільове місце зв'язаного файлу? Під цим я маю в виду, скажімо , у мене є file2в /home/user/; але це символічне посилання на інше file1. Як я можу знайти, file1не вручну проходити через кожен розділ / каталог, щоб знайти файл?


1
Розгорніть на "оригінальний файл". Що робити, якщо file1це посилання на file0? Ви хочете знайти останню ціль символьного посилання ( file0) або просто наступну ( file1)?
don_crissti

Відповіді:


26

Спробуйте це :

readlink -f /path/file

(остання ціль вашого символьного посилання, якщо є більше одного рівня)

Якщо ви просто хочете наступного рівня символічного посилання, використовуйте:

readlink /path/file

я не отримую результатів
k-Rocker

Ви повинні мати його! Помилка або шлях
Жилль Кінот

нічого нічого: user@shell a5$ readlink -f ./student1.javaі я отримуюuser@shell a5$
k-Rocker

nvm, моє символічне посилання не було налаштовано правильно, не знаю чому. але я зробив новий, і він працює, дякую.
k-Rocker

2
FWIW readlink /path/fileповерне наступну ціль.
don_crissti

2

1.

ls -l bin

виробляти

lrwxrwxrwx 1 az az 14 Ноя 12 22:13 bin -> ../Gdrive/bin/

2.

file bin

виробляти

bin: symbolic link to `../Gdrive/bin/' 

3.

stat bin

виробляти

File: «bin» -> «../Gdrive/bin/»

гаразд, я намагаюся зробити сценарій, так як би я ними скористався? я новий для Linux.
k-Rocker

1
@ k-Rocker Якщо ви поясните, що ви маєте намір зробити, було б краще.
Костас

1

Найпростіший спосіб: cdтуди, де знаходиться символічне посилання, і ls -lперелічити деталі файлів.

Частина праворуч ->після символічного посилання - це місце, на яке воно вказується.

Наприклад:

lrwxrwxrwx 1 користувачName groupName 22 січня 17 13:29 Посилання на temp.txt -> /home/user/temp.txt

Тут ми маємо "Посилання на temp.txt", яке вказує на ( ->) "/home/user/temp.txt".

Але, як зазначає @Gilles Quenot , ви також можете просто зробитиreadlink -f /path/to/symbolic_link


0

Розширюється на Костасі

Припустимо, у вас є

ln -s test.txt sym_link_1.txt
ls -l sym_link_1.txt
lrwxrwxrwx. 1 a1 g1 8 Jan  7 16:59 sym_link_1.txt -> test.txt

У сценарії, який ви можете зробити (використовувати зворотні посилання)

ln -s `readlink sym_link_1.txt` sym_link_2.txt

Тоді у вас є

ls -l sym_link_*.txt
lrwxrwxrwx. 1 a1 g1 8 Jan  7 16:59 sym_link_1.txt -> test.txt
lrwxrwxrwx. 1 a1 g1 8 Jan  7 17:01 sym_link_2.txt -> test.txt

0

Інший метод (на який раніше не відповідали) для пошуку файлів посилань - це використання команди нижче.

file -h <path_to_dir>/* | grep link

Команда :

file -h /home/prateek/* | grep link

Вихід :

/ Головна / Пратеєк / Музика: символічне посилання на / медіа / пратеєк / HD-E1 / Музика

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