Изменение названий всех файлов из каталога в нижний регистр в Linux

Изменение названий всех файлов из каталога в нижний регистр в Linux

Рубрики:

find, Linux, xargs

Метки:

, , , ,

Пользователи ОС Linux должны следить за порядком в файловой системе. Одним из способов его достижения является использование согласованных названий файлов и каталогов. Функционал Linux предоставляет пользователям различные инструменты для одновременного переименования нескольких файлов.

В этой статье мы покажем два способа изменить названия файлов и директорий из верхнего регистра в нижний в Linux.

Содержание:

  1. Одновременное переименование файлов и папок из каталога с помощью find, xargs и rename
  2. Одновременное переименование файлов и папок из каталога с помощью скрипта
  3. Выводы

Одновременное переименование файлов и папок из каталога с помощью find, xargs и rename

Допустим, у нас в ОС есть каталог FILES. В нем хранятся несколько файлов и папка, названия которых содержат прописные буквы. Просмотреть содержимое директории FILES можно с помощью команды tree:

 

tree files

Для этой же задачи можно использовать команду find с опцией -depth:

 

find files depth

Читайте также: Как использовать команду tree в Linux.

Чтобы переименовать все файлы из каталога FILES в нижний регистр, применим следующую конструкцию команд:

 

Где:

  1. find <directory> -depth — команда, которая выполняет рекурсивный поиск в указанном каталоге <directory>.
  2. | — конвейер, который направляет вывод команды find в качестве ввода xargs.
  3. xargs -n 1 — команда которая, гарантирует, что на ввод rename передается только один аргумент за раз;
  4. rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \; — команда, которая использует регулярное выражение для переименования файлов и папок, где:
    • s/ — разделитель, используемый для выполнений операции подстановки, поиска и замены;
    • (.*) — захватывает любую последовательность символов (кроме символа новой строки) и сохраняет ее в первой переменной $1 (соответствует пути к каталогу);
    • \/ — обозначает символ косой черты (/) в пути к файлу;
    • ([^\/]*) — захватывает любую последовательность символов (кроме символа новой строки) и сохраняет ее во второй переменной $2 (соответствует названию файла или папки);
    • $1\/\L$2 — преобразовывает названия файлов и папок в нижний регистр;
    • {} — заполнитель, в который записываются текущее название файла или каталога;
    • \; — используется для завершения команды.

Важно: установить утилиту rename можно с помощью стандартного менеджера пакетов Вашего дистрибутива.

Выполним эту команду, указав вместо <directory> путь к каталогу FILES:

 

rename files using xargs

На скриншоте выше видно, что команда выполнилась успешно. Проверим это, используя одну из следующих команд:

 

find files after rename

Одновременное переименование файлов и папок из каталога с помощью скрипта

Альтернативный способ изменить регистр названий файлов и папок в каталоге из верхнего в нижний — написать скрипт Bash. Для этого создадим файл rename-files.sh:

 

И вставим в него следующий код:

 

rename script

Читайте также: 10 полезных советов для написания эффективных bash скриптов в Linux.

Затем установим для нашего скрипта права на исполнение:

 

Чтобы задать нижний регистр для названий всех файлов и папок из каталога, запустим скрипт и передадим путь к директории FILES в качестве аргумента:

 

rename script usage

Важно: главной особенностью этого сценария является, то что он также изменяет регистр букв из названия родительского каталога.

Выводы

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

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы — задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасностиполный курс по кибербезопасностикурсы DevNet / DevOps (программируемые системы) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

find, Linux, xargs

Метки:

, , , ,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню