Главная > Управление файлами и каталогами > basename

basename: Извлечение имени файла из пути

Команда basename извлекает только имя файла или каталога из заданного пути к файлу, удаляя часть каталога. В частности, опция `-z` завершает вывод нулевым (null) символом, что позволяет безопасно обрабатывать имена файлов, содержащие пробелы или специальные символы, в скриптах.

Обзор

basename — это стандартная утилита, используемая для извлечения последнего компонента пути к файлу (имени файла или каталога). Опция `-z` завершает вывод нулевым символом вместо символа новой строки, что предотвращает проблемы, связанные со специальными символами, такими как пробелы, табуляции и символы новой строки, которые могут присутствовать в именах файлов при использовании с такими командами, как `find -print0` и `xargs -0`.

Основные возможности

  • Извлечение имени файла/каталога из пути к файлу
  • Поддержка вывода с завершением нулевым (null) символом (-z)
  • Безопасная обработка имен файлов в скриптах
  • Опциональное удаление суффикса

Основные опции

Команда basename относительно проста, но предлагает несколько полезных опций.

Формат вывода

Сгенерированная команда:

Комбинируйте команды.

Описание:

`basename` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

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

Различные примеры использования basename -z.

Базовый вывод с завершением нулевым символом

basename -z "/home/user/my document.txt" | xargs -0 echo

Извлекает имя файла из пути к файлу и завершает его нулевым символом.

Удаление суффикса и завершение нулевым символом

basename -z "/path/to/archive.tar.gz" .tar.gz | xargs -0 echo

Извлекает имя файла из пути к файлу, удаляет указанный суффикс и завершает его нулевым символом.

Безопасная обработка с использованием find и xargs

find . -maxdepth 1 -type f -print0 | xargs -0 -I {} basename -z {} | xargs -0 echo "Обработанный файл:"

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

Обработка нескольких путей к файлам

echo -e "/dir/file one.txt\0/dir/file two.log" | xargs -0 -I {} basename -z {} | xargs -0 -n 1 echo

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

Советы и примечания

Полезные советы и моменты, на которые стоит обратить внимание при использовании basename -z.

Важность использования нулевого (null) символа

При наличии в именах файлов специальных символов, таких как пробелы, табуляции или символы новой строки, опция `-z` позволяет точно распознавать эти символы как часть имени файла, предотвращая ошибки в скриптах. Это особенно мощная комбинация при использовании с `find -print0` и `xargs -0`.

  • Безопасная обработка: Предотвращает ошибки разбора из-за пробелов или специальных символов в именах файлов.
  • Совместимость со скриптами: Полностью совместим с другими командами, использующими нулевой символ в качестве разделителя, такими как `xargs -0`, `read -d ''`.

Внимание при удалении суффикса

При удалении суффикса он должен точно совпадать с конечной частью имени файла, чтобы быть удаленным. Например, `basename -z "file.txt.bak" .bak` вернет `file.txt`, но `basename -z "file.txt.bak" .txt` вернет `file.txt.bak`.


Связанные команды

Функционально схожие или часто используемые команды.


Те же команды в категории