Что такое циник? Человек, знающий всему цену, но не знающий ценности (О. Уайльд).

2 мин для чтенияИспользование команды Dirname в Linux в скриптах Bash

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
5 июня 2020
Bash Heredoc
Команда dirname в Linux печатает путь к файлу с удаленным последним компонентом. Это в основном дает вам путь к каталогу из пути к файлу.

destroyer@andreyex: ~$ dirname /home/andreyex/upload/andreyex.jpg
/home/andreyex/upload
destroyer@andreyex: ~$

 

Это особенно полезно в скриптах bash, где вы хотите извлечь путь к каталогу из длинного пути к файлу.

Команда dirname дополняет команду basename. Команда basename извлекает имя файла из пути, в то время как dirname извлекает путь к каталогу.

 

Примеры команды Dirname

Команда dirname имеет простой синтаксис.

dirname OPTION PATH

 

Использование команды dirname с абсолютным путем к файлу даст путь к каталогу:

dirname /home/user/data/filename.txt
/home/user/data

 

Как и команда basename, команда dirname на самом деле примитивна. Она действительно не распознает путь к файлу. А просто ищет косые черты (/) и печатает все, что есть до последней косой черты. По сути, вы можете задать ему любую строку с / в ней, и она будет работать с ней.

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

destroyer@andreyex: ~$ dirname dir1/dir2/dir3/dir4
dir1/dir2/dir3
destroyer@andreyex: ~$

 

Если в пути нет косой черты (/), будет выведена точка (.), Означающая текущий каталог.

destroyer@andreyex: ~$ dirname andreyex.txt
.
destroyer@andreyex: ~$

 

Вы также можете использовать dirname с несколькими путями. Он вернет вывод для каждого пути в новой строке:

destroyer@andreyex: ~$ dirname dir1/file dir2/file
dir1
dir2
destroyer@andreyex: ~$

 

Вы можете использовать опцию -z, чтобы получить результат в одной строке с выводами, разделенными символом NULL.

 

Использование dirname в скрипте bash

Мы показали несколько примеров команды dirname. Давайте поговорим об использовании dirname в скриптах bash.

Предположим, у вас есть переменная пути к файлу, и вы хотите получить путь к каталогу, в котором находится файл. Это может быть простой скрипт:

pathname="/home/dir/data/filename"
result=$(dirname "$pathname")
echo $result

 

Как мы упоминали ранее, команда dirname дополняется командой basename. В отличие от dirname, команда basename печатает только последний компонент пути.

Мы надеемся, вам понравилась эта статья. Как всегда, не стесняйтесь задавать вопросы или давать предложения в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close