Команды 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 (здесь и здесь), чтобы узнать больше об этих инструментах.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.