Команды Linux · 2 min read · Oct 26, 2025
Учебник по командам Linux readlink и realpath для начинающих (с примерами)

Мы уже обсуждали команду ln, которая позволяет создавать ссылки между файлами. Однако некоторые инструменты позволяют вам разрешать эти ссылки.
В этом учебнике мы обсудим основы команд realpath и readlink, которые похожи (если не идентичны) тем, что они отображают разрешенные символические ссылки в выводе. Но прежде чем мы это сделаем, стоит упомянуть, что все примеры здесь были протестированы на Ubuntu 24.04 LTS и Debian 12.
Команды realpath и readlink в Linux
Как упоминалось в начале, обе команды realpath и readlink отображают разрешенный путь для символических ссылок в выводе.
Следующий синтаксис:
realpath [OPTION]... FILE...readlink [OPTION]... FILE...А вот что говорят их соответствующие страницы man:
Печатает разрешенное абсолютное имя файлапечатает разрешенные символические ссылки или канонические имена файловСледуют некоторые примеры в формате вопросов и ответов, которые должны дать вам лучшее представление о том, как работают эти инструменты.
В1. Как разрешить путь с помощью realpath и readlink?
Просто: просто предоставьте файл или путь в качестве ввода. Следующий пример показывает, как обе эти команды разрешают символическую ссылку.
И вот как они работают с путями:
Таким образом, вы можете видеть, что обе команды успешно разрешили символические ссылки в двух случаях.
В2. Как напечатать разрешенный путь относительно директории?
Команда realpath позволяет вам легко это сделать. Например, предположим, что вы пытаетесь сделать следующее:
realpath /var/local/DownloadslinkОднако дополнительное требование состоит в том, чтобы вывод этой команды был относительно директории /home/himanshu. Тогда следующая команда, которую вам нужно выполнить:
realpath /var/local/Downloadslink --relative-to=/home/himanshuВот вывод:
DownloadsТаким образом, вы можете видеть, что опция ‘–relative-to’ позволила вам получить вывод относительно директории /home/himanshu.
В3. Как избавиться от .. в путях?
Могут быть случаи, когда расширение/разрешение символических ссылок не является целью, но избавиться от .. в пути — это то, что нужно. Команда realpath позволяет вам это сделать.
Все, что вам нужно сделать, это использовать опцию командной строки -s. Вот пример:
realpath -s ../../var/local/DownloadslinkА вот вывод этой команды:
/var/local/DownloadslinkВ4. Как изменить разделительный символ?
По умолчанию в качестве разделительного символа используется новая строка. Однако обе команды предоставляют способ использовать NUL в качестве разделителя вместо этого.
Опция, которую вам нужно использовать в обоих случаях, - это -z.
realpath -z [FILE/PATH]readlink -z [FILE/PATH]Заключение
Мы обсудили здесь лишь несколько опций/функций, которые предоставляют эти команды. Как только вы закончите практиковаться с ними, перейдите к страницам man для readlink и realpath (здесь и здесь), чтобы узнать больше об этих инструментах.
Get new posts in your inbox
No spam. Unsubscribe anytime.