Команда Basename в Linux

Базовое имя Linux Команда

basename — это утилита командной строки, которая удаляет каталог и конечный суффикс из заданных имен файлов.

Использование basename Команда

Команда basename поддерживает два формата синтаксиса:

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

basename принимает имя файла и выводит его последний компонент. При желании можно также удалить любой завершающий суффикс. Это простая команда, принимающая всего несколько параметров.

Самый простой пример — вывести имя файла без ведущих каталогов:

 basename /etc/passwd

Вывод будет включать имя файла:

 passwd

Команда basename удаляет все конечные символы / :

 basename /usr/local/ basename /usr/local

Обе команды дадут одинаковый результат:

 local local

По умолчанию каждая строка вывода заканчивается символом новой строки. Чтобы завершить строки символом NUL , используйте опцию -z ( --zero ).

Несколько входов

Команда basename может принимать несколько имён в качестве аргументов. Для этого вызовите команду с опцией -a ( --multiple ), а затем укажите список файлов, разделённых пробелом.

Например, чтобы получить имена файлов /etc/passwd и /etc/shadow вам нужно выполнить:

 basename -a /etc/passwd /etc/shadow
 passwd shadow

Удаление конечного суффикса

Чтобы удалить любой конечный суффикс из имени файла, передайте суффикс в качестве второго аргумента:

 basename /etc/hostname name
 host

Обычно эта функция используется для удаления расширений файлов:

 basename /etc/sysctl.conf .conf
 sysctl

Другой способ удалить конечный суффикс — указать суффикс с помощью параметра -s ( --suffix=SUFFIX ):

 basename -s .conf /etc/sysctl.conf
 sysctl

Эта форма синтаксиса позволяет вам удалить любой конечный суффикс из нескольких имен:

 basename -a -s .conf /etc/sysctl.conf /etc/sudo.conf
 sysctl sudo

Пример

В следующем примере показано, как использовать команду basename внутри цикла bash for для переименования всех файлов, заканчивающихся на «.jpeg», в текущем каталоге путем замены расширения файла с «.jpeg» на «.jpg»:

 for file in *.jpeg ; do mv -- " $file " " $( basename $file .jpeg ) .jpg" done

Если вы используете bash в качестве оболочки, то вместо вызова basename вы можете использовать функцию удаления конечного расширения с помощью Shell Parameter Expansion .

Заключение

Команда basename удаляет из имени любой начальный каталог и конечный суффикс.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

базовое имя терминала

Связанные руководства

Источник

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

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