Пользователи ОС Linux должны следить за порядком в файловой системе. Одним из способов его достижения является использование согласованных названий файлов и каталогов. Функционал Linux предоставляет пользователям различные инструменты для одновременного переименования нескольких файлов.
В этой статье мы покажем два способа изменить названия файлов и директорий из верхнего регистра в нижний в Linux.
Содержание:
- Одновременное переименование файлов и папок из каталога с помощью find, xargs и rename
- Одновременное переименование файлов и папок из каталога с помощью скрипта
- Выводы
Одновременное переименование файлов и папок из каталога с помощью find, xargs и rename
Допустим, у нас в ОС есть каталог FILES
. В нем хранятся несколько файлов и папка, названия которых содержат прописные буквы. Просмотреть содержимое директории FILES
можно с помощью команды tree
:
Для этой же задачи можно использовать команду find
с опцией -depth
:
Читайте также: Как использовать команду tree в Linux.
Чтобы переименовать все файлы из каталога FILES
в нижний регистр, применим следующую конструкцию команд:
Где:
find <directory> -depth
— команда, которая выполняет рекурсивный поиск в указанном каталоге<directory>
.|
— конвейер, который направляет вывод командыfind
в качестве вводаxargs
.xargs -n 1
— команда которая, гарантирует, что на вводrename
передается только один аргумент за раз;rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
— команда, которая использует регулярное выражение для переименования файлов и папок, где:s/
— разделитель, используемый для выполнений операции подстановки, поиска и замены;(.*)
— захватывает любую последовательность символов (кроме символа новой строки) и сохраняет ее в первой переменной$1
(соответствует пути к каталогу);\/
— обозначает символ косой черты (/
) в пути к файлу;([^\/]*)
— захватывает любую последовательность символов (кроме символа новой строки) и сохраняет ее во второй переменной$2
(соответствует названию файла или папки);$1\/\L$2
— преобразовывает названия файлов и папок в нижний регистр;{}
— заполнитель, в который записываются текущее название файла или каталога;\;
— используется для завершения команды.
Важно: установить утилиту rename
можно с помощью стандартного менеджера пакетов Вашего дистрибутива.
Выполним эту команду, указав вместо <directory>
путь к каталогу FILES
:
На скриншоте выше видно, что команда выполнилась успешно. Проверим это, используя одну из следующих команд:
Одновременное переименование файлов и папок из каталога с помощью скрипта
Альтернативный способ изменить регистр названий файлов и папок в каталоге из верхнего в нижний — написать скрипт Bash. Для этого создадим файл rename-files.sh
:
И вставим в него следующий код:
Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.
Затем установим для нашего скрипта права на исполнение:
Чтобы задать нижний регистр для названий всех файлов и папок из каталога, запустим скрипт и передадим путь к директории FILES
в качестве аргумента:
Важно: главной особенностью этого сценария является, то что он также изменяет регистр букв из названия родительского каталога.
Выводы
Мы показали Вам два способа изменения названий всех файлов из каталога в нижний регистр в Linux: с помощью команд терминала и скрипта Bash. Используя показанные инструменты, Вы сможете сделать имена файлов более согласованными и значительно упростите себе в будущем работу с файловой системой.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы 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.