Как перейти по символическим ссылкам в Linux
У вас есть символическая ссылка, и вас интересует настоящий исходный файл? Вот как перейти по символическим ссылкам в Linux.
Символическая ссылка (также известная как программная ссылка) — это своего рода ярлык на другой файл. Он широко используется в Linux для общих библиотек.
Но как узнать, на какой исходный файл указывает ссылка?
Для этой цели вы можете использовать команду ls. Удивлен? Не будь. Длинный список ls -l
показывает, куда указывает символическая ссылка:
ls -l /path/to/file
Например, я создал программную ссылку с именем MyTorrents
, которая нацелена на другой диск, поэтому моя команда будет такой:
ls -l /home/sagar/Symbolics/MyTorrents
Однако это не надежный способ перейти по символической ссылке на исходный файл, поскольку, если это многослойная ссылка (ссылка, указывающая на другую ссылку, указывающую на файл), команда ls не отобразит исходный файл.
Как найти целевой файл символической ссылки в Linux
Совершенно очевидно, что при наличии достаточных навыков у вас есть несколько способов добиться одной и той же цели, особенно если мы рассматриваем Linux.
Поэтому я буду использовать следующие утилиты командной строки для перехода по символическим ссылкам:
прочитать ссылку
реальный путь
статистика
файл
Вы можете использовать команду ln для создания ссылок и практики, следуя этому руководству.
1. Использование команды readlink
Конкретная утилита, которая просто создана для достижения нашей цели. Да, это читалка.
Он довольно прост в использовании и доступен по умолчанию в каждом дистрибутиве Linux. Поэтому просто укажите путь к символической ссылке с помощью команды readlink
и все.
readlink /path/to/symbolic/link
Моя символическая ссылка находится в /home/sagar/Symbolics/MyTorrents
, поэтому моя команда будет такой:
readlink /home/sagar/Symbolics/MyTorrents
Но что, если ваша символическая ссылка включает в себя несколько уровней, например, одна ссылка обвиняется в другой? Что ж, в этом случае вам придется использовать опцию -f
.
В этом примере я создал новую символическую ссылку, расположенную по адресу /home/sagar/Documents/NewLink
, и сопоставил ее с другой ссылкой, чтобы лучше понять, как действовать в таких сценариях:
readlink -f /home/sagar/Documents/NewLink
2. Использование команды Realpath
Как следует из названия, утилита realpath используется для получения пути к файлам и каталогам, но интересно то, что при использовании без каких-либо опций она может привести нас к источнику символической ссылки.
Использование Realpath даже без каких-либо опций эквивалентно использованию readlink -f
, поэтому не беспокойтесь о том, что вы сопоставите его с другой символической ссылкой.
Синтаксис реального пути для перехода по символической ссылке на исходный файл:
realpath /path/to/symbolic/link
И после указания пути конечный результат должен выглядеть так:
3. Использование команды stat
Утилита stat используется для получения статуса файлов, а также может использоваться для поиска исходного источника символической ссылки.
Просто укажите путь к символической ссылке команде stat
и все.
stat /path/to/symbolic/link
А если другие детали кажутся вам ненужными, вы можете использовать опцию -c%N
, чтобы отфильтровать их. Не самый простой вариант для запоминания, поэтому для его вызова используйте команду man или help.
stat -c%N /path/to/symbolic/link
4. Использование команды файла
Что ж, использовать команду file довольно просто, и вам необходимо следовать тому же синтаксису, который вы видели ранее в других примерах.
Файловая команда с путем к символической ссылке. Это все, что вам нужно!
file /path/to/symbolic/link
Заключительные слова
Если вы имеете дело с многослойными слоями мягких ссылок, я рекомендую использовать первые два способа перехода по символическим ссылкам.
Эти утилиты довольно просты и не требуют сложного синтаксиса, но если вы все еще в замешательстве, дайте мне знать в комментариях.