Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Команда basename в Linux

Автор: admin, 1 декабря, 2023
Команды

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

Примеры использования в Linux команды basename

Содержание

  • Синтаксис
  • Опции
  • Использование в Linux команды basename
    • Вывод имени файла с удалением каталогов
    • Несколько входов
    • Удаление завершающего суффикса
  • Заключение

Синтаксис

basename ИМЯ [СУФФИКС]

или

basename ПАРАМЕТР… ИМЯ…

Выводит ИМЯ без предшествующих названий каталогов. Если указано, удаляет также завершающий СУФФИКС.

Опции

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

-a, --multiple
Принять несколько аргументов и считать каждый ИМЕНЕМ
-s, --suffix=СУФФИКС
Удалить завершающий СУФФИКС; подразумевает -a
-z, --zero
Заканчивать каждую строку результата NUL, а не символом новой строки
--help
Показать эту справку и выйти
--version
Показать информацию о версии и выйти

Примеры:

  • basename /usr/bin/sort -> sort
  • basename include/stdio.h .h -> stdio
  • basename -s .h include/stdio.h -> stdio
  • basename -a any/str1 any/str2 -> за str1 выведется str2

Использование в Linux команды basename

Вывод имени файла с удалением каталогов

Для примера выводим имя файла /etc/fstab. Вывод будет включать лишь имя файла:

oleg@mobile:~:$ basename /etc/fstab
fstab
oleg@mobile:~:$ <

Утилита также удаляет все конечные символы:

oleg@mobile:~:$ basename /user/local/bin/
bin
oleg@mobile:~:$ 

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

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

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

oleg@mobile:~:$ basename -a ~/store/distros/kali/* ~/store/distros/ubuntu/* 
kali-linux-2022.2-installer-amd64.iso
kali-linux-2022.2-live-amd64.iso
ubuntu-20.04.2.0-desktop-amd64.iso
oleg@mobile:~:$ 

В данном случае я отобразил все файлы, находящиеся в каталогах ~/store/distros/kali/ и ~/store/distros/ubuntu/.

Удаление завершающего суффикса

Для удаления любого конечного суффикса из имени файла он передаётся в качестве второго аргумента:

oleg@mobile:~:$ basename /etc/nginx/sites-available/linuxcookbookru.conf .conf
linuxcookbookru
oleg@mobile:~:$ 

Для удаления конечного суффикса можно также указать его с помощью опции -s:

oleg@mobile:~:$ basename -s .conf /etc/nginx/sites-available/linuxcookbookru.conf
linuxcookbookru
oleg@mobile:~:$ 

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

oleg@mobile:~:$ basename -as .conf /etc/fuse.conf /etc/host.conf /etc/locale.conf
fuse.conf
host.conf
locale.conf
oleg@mobile:~:$ 

Заключение

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

Последние материалы

  • Утилита sensors
    36 minutes 51 second ago
  • Сканер Rkhunter
    1 week ago
  • Программа resize2fs
    1 week 6 days ago
  • Аудиопроигрыватель QMMP
    2 weeks 4 days ago
  • Программа Timeshift
    3 weeks 3 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru