В операционной системе Linux все объекты организованы в иерархической структуре, известной, как файловая система. Каждый файл и каталог в ней имеет свой уникальный путь, определяющий его местоположение в ОС. Иногда для удобства обработки файла, который расположен в глубине структуры каталогов, следует извлечь из пути к нему только его название.
В этой статье мы покажем Вам два способа извлечь название файла из пути в операционной системе Linux.
Содержание:
Использование команды basename
В операционной системе Linux есть встроенная утилита basename, которая используется для извлечения названия файла из пути к нему.
Просто передайте путь к файлу в качестве аргумента команде basename, и она выведет на экран только его название:
Важно: в качестве аргумента basename можно передать не только путь к локальному файлу, но и к файлу, расположенному в Интернете.
Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.
Вдобавок, возможно написать скрипт с командой basename для извлечения названия файла из его пути:
Где:
filename— переменная, в которой хранится путь к файлу;s— переменная, в которой хранится результат работы командыbasename $filename(то есть, название файла с расширением);echo ${s%.*}— команда, которая удаляет расширение из названия файла, хранящегося в переменнойs.
Извлечение названия файла из пути без basename
Также можно решить данную задачу и без использования команды basename. Для этого воспользуйтесь следующим скриптом для извлечения названия файла:
Где:
s=${filename##*/}— команда, которая извлекает название файла из пути, хранящегося в переменнойfilename:##*/— шаблон, удаляющий все знаки из пути до последнего символа/(включительно);
echo ${s%.*}— команда, которая удаляет расширение из названия файла, хранящегося в переменнойs.
Читайте также: Синхронизация каталогов с помощью Zaloha.sh в Linux.
Выводы
Теперь Вы знаете, как извлечь название файла из пути к нему с помощью утилиты командной строки basename и скриптов Bash в ОС Linux. Надеемся, что эта статья была полезной для Вас!
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.


























