Linux команда basename для начинающих (с примерами)

by itisgood

Иногда, работая в командной строке (особенно при работе с shell-скриптами), вам может быть интересно только имя файла, но доступным для вас является полный путь к файлу.

Таким образом, необходимо разбить компонент каталога пути.

Вы будете рады узнать, что существует команда – basename – которая выполняет эту работу.

В этом уроке мы обсудим основы «basename», используя несколько простых для понимания примеров.

Но прежде чем мы перейдем к этому, стоит упомянуть, что все примеры здесь были протестированы на машине Ubuntu 16.04 LTS.

Команда basename для Linux

Команда basename позволяет отделять компоненты от имен файлов, которые не требуются.

Ниже приведен синтаксис инструмента:

basename NAME [SUFFIX]
basename OPTION... NAME...

И вот что man говорит:

basename - strip directory and suffix from filenames

Print NAME with any leading directory components removed. If specified, also remove a trailing 
SUFFIX.

Ниже приведены примеры Вопрос & Ответ, которые должны дать вам представление о том, как работает команда basename.

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

По умолчанию, если вы запустите команду «basename» с полным путем к файлу в качестве ввода, команда возвращает имя файла на выводе.

Например, когда я выполнил следующую команду:

 basename /home/himanshu/Downloads/analytics.pdf

Я получил следующий результат:

analytics.pdf

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

Да, он может.

Но для этого вам нужно использовать опцию -a командной строки.

Например, когда я выполнил следующую команду:

basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

я получил вывод:

analytics.pdf
test.png

Вопрос 3. Как убрать расширение файла ?

Иногда вы можете захотеть получить имя файла, но не его расширение

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

Например, следующая команда:

 basename -s .pdf /home/himanshu/Downloads/analytics.pdf

произвела этот результат:

analytics

Вопрос 4. Как сделать вывод каждой строки с помощью NUL?

По умолчанию символ новой строки используется как разделитель на выходе.

Однако, если вы хотите, вы можете заставить basename использовать NUL в качестве разделителя.

Это можно сделать, используя опцию командной строки -z.

Например:

 basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

И вот результат:

analytics.pdftest.png

You may also like

Leave a Comment