Команды Linux · 1 min read · Sep 15, 2025

Команда dirname в Linux: объяснение для начинающих (4 примера)

Вы новичок в Linux? Ваша работа связана с написанием сценариев оболочки? Если на оба этих вопроса ответ “да”, то инструмент, который мы здесь обсудим, вероятно, вас заинтересует. Название инструмента - dirname, и он в основном используется в ситуациях, когда вам нужно удалить последний компонент из абсолютного имени файла.

В этом руководстве мы обсудим основы dirname, а также то, как вы можете его использовать. Но прежде чем мы это сделаем, стоит отметить, что все примеры/инструкции, упомянутые здесь, были протестированы на Ubuntu 22.04 LTS.

Команда dirname в Linux

Следующий синтаксис является общим для команды dirname:

dirname [OPTION] NAME...

Вот как страница man описывает этот инструмент:

Выводит каждое NAME с удаленным последним компонентом, не являющимся слэшем, и удаленными завершающими слэшами; если NAME не содержит /'ов, выводит '.' (что означает текущую директорию).

Следующие примеры в формате вопрос-ответ дадут вам лучшее представление о том, как можно использовать этот инструмент. Чтобы перейти в новую директорию, используйте команду cd.

Вопрос 1. Как работает команда dirname?

Основное использование инструмента очень простое - просто напишите имя команды, за которым следует абсолютное имя файла. В выводе вы получите полное дерево директорий, за исключением имени файла.

Вот пример:

Вопрос 2. Может ли он обрабатывать несколько входных данных?

Да, конечно. Все, что вам нужно сделать, это передать абсолютные имена файлов одно за другим. Следующий пример должен это наглядно продемонстрировать:

Вопрос 3. Что если имя файла является его абсолютным именем?

Если ввод - это просто имя файла (не абсолютное, полное с деревом директорий), то в выводе будет выведена точка (.).

Если вы снова посмотрите на описание команды в странице man (упомянутое в начале), это поведение там явно указано.

Вопрос 4. Как заменить новую строку на NUL в выходных строках?

По умолчанию строки в выводе разделены новыми строками, как видно из Вопроса 2 выше. Однако, если вы хотите, вы можете сделать так, чтобы выходные строки были разделены символами NUL. Для этого используйте командный параметр -z.

Вот скриншот этого параметра командной строки в действии:

Обратите внимание, что выходные строки больше не разделены новой строкой.

Заключение

Команда dirname может не быть такой многофункциональной, как некоторые другие команды Linux, но было бы неправильно сказать, что это полезный инструмент, который может спасти вас в работе с сценариями оболочки. Все, что мы обсудили здесь, это практически все, что предлагает этот инструмент. Если у вас есть какие-либо сомнения или вопросы, оставьте комментарий ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.