Обзор
Команда 'basename' используется для удаления части каталога из пути к файлу и извлечения только имени файла (или последнего имени каталога). Это очень полезно при работе с путями к файлам в скриптах оболочки, особенно когда требуется только имя файла.
Основные функции
- Извлечение имени файла из пути к файлу
- Опциональное удаление указанного суффикса из имени файла
- Возможность пакетной обработки нескольких путей
Основные опции
Ниже приведены основные опции, доступные в стандартной команде 'basename'.
Базовое поведение и фильтрация
Сгенерированная команда:
Комбинируйте команды.
Описание:
`basename-u` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Ниже приведены реальные примеры использования стандартной команды 'basename'.
Базовое извлечение имени файла
basename /home/user/documents/report.pdf
Извлекает имя файла из заданного пути.
Удаление суффикса
basename /var/log/syslog.log .log
Удаляет определенный суффикс из имени файла.
Извлечение имен нескольких файлов
basename -a /etc/hosts /usr/bin/ls /tmp/test.txt
Извлекает имена файлов из нескольких путей одновременно.
Использование завершения нулевым символом и xargs
find . -maxdepth 1 -type f -print0 | xargs -0 basename -z
Безопасно обрабатывает вывод, завершенный нулевым символом, с помощью `xargs -0`.
Советы и примечания
Объяснение опции basename-u
Опция '-u', включенная в имя команды, не является допустимой опцией для стандартной команды 'basename'. В команде 'basename' из GNU Coreutils нет опции '-u', и ее использование может привести к сообщению об ошибке, такому как 'basename: invalid option -- 'u''. Если '-u' используется в определенном скрипте или среде, это, скорее всего, пользовательский скрипт или псевдоним, а не команда 'basename'.
Комбинация с dirname
'basename' извлекает только имя файла, а 'dirname' извлекает только путь к каталогу. Совместное использование этих двух команд позволяет полностью разделить путь к файлу на каталог и имя файла, что очень полезно при написании скриптов оболочки.
- Пример: path="/home/user/documents/report.pdf" echo "Каталог: $(dirname "$path")" echo "Имя файла: $(basename "$path")"