Переименование нескольких файлов в Linux

rename — инструмент командной строки для переименования нескольких файлов в Linux

Рубрики:

Linux

Метки:

Мы часто используем команду «mv» для переименования одного файла в Linux. Однако быстрое переименование нескольких файлов или тем более группы файлов достаточно сложная задача для выполнения в терминале.

Linux поставляется с очень мощным встроенным инструментом под названием rename. Команда rename используется для переименования нескольких файлов или же группы файлов, переименования файлов из верхнего в нижний регистр и наоборот, и перезаписывания файлов с использованием выражений perl.

Переименование нескольких файлов в Linux

Команда «rename» является частью скрипта Perl и находится в разделе «/usr/bin/» во многих дистрибутивах Linux. Вы можете запустить команду «which», чтобы узнать местоположение команды rename.

 

Основной синтаксис команды переименования

 

Команда rename содержит несколько необязательных аргументов вместе с обязательными регулярными выражением для perl, которое указывают команде rename выполнять конкретные действия.

 

  • -v: Показать, имена успешно переименованных файлов.
  • -n: Показать, какие файлы были бы переименованы.
  • -f: Принудительно перезаписать существующие файлы.
  • perlexpr: регулярные выражения для Perl.

Для лучшего понимания этой утилиты мы обсудим несколько практических примеров этой команды в статье.

1. Пример базовой команды переименования

Предположим, у вас есть куча файлов с расширением «.html», и вы хотите переименовать все файлы в «.php» за один раз. Сначала выполните «ls -l», чтобы проверить список файлов с расширением «.html».

 

Теперь изменим расширение всех этих файлов с «.html» на «.php». Вы можете использовать следующую команду «rename» с регулярными выражением для perl, как показано ниже.

 

Примечание. В приведенной выше команде мы использовали два аргумента.

  • Первый аргумент — это выражение perl, которое заменяет .html на .php.
  • Второй аргумент — сообщает команде rename заменить все файлы на *.php.

Давайте проверим, все ли файлы переименованы в расширение .php, выполнив ls -l:

 

 

Выше вы видите, что все html файлы переименованы в php.

2. Проверьте изменения перед выполнением команды переименования

При выполнении важных или крупных задач переименования вы всегда можете проверить изменения, выполнив команду rename с аргументом «-n». Параметр «-n» точно скажет вам, какие изменения произойдут, но изменения не выполняются по-настоящему.

 

3. Вывод полной информации обо всех изменениях

Мы видели, что команда rename не отображает никакой информации об изменениях, которые она делает. Итак, если вы хотите получить информацию о команде переименования вы можете использовать флаг «-n», или же флаг «-v», чтобы вывести полную информацию обо всех изменениях, сделанных командой rename

 

4. Преобразование регистров (верхний в нижний и наоборот)

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

Нижний регистр в верхний:

 

Просто используйте следующую команду с выражением perl.

 

После выполнения вышеуказанной команды вы можете проверить изменения, выполнив «ls -l».

 

Вы видите, что приведенная выше команда фактически переименовала все имена файлов нижнего регистра (с расширением .HTML) в верхний регистр.

Верхний регистр в нижний:

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

 

5. Перезапись существующих файлов

Если вы хотите принудительно перезаписать существующие файлы, используйте параметр «-f», как показано в примере ниже.

 

Если вы хотите узнать больше о команде rename, введите «man rename» в терминале.

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

 

 

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

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

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

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии 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, подайте заявку или получите бесплатную консультацию.

Рубрики:

Linux

Метки:

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

3 комментария. Оставить новый

  • Лично у меня на убунту после попытки переименовать с верхнего в нижний регистр командой rename ‘y/A-Z/a-z/’ *.* пишет:

    File1.TXT not renamed: file1.txt already exists
    File2.TXT not renamed: file2.txt already exists
    File3.TXT not renamed: file3.txt already exists

    Ответить
  • А как переименовать кучу файлов с различными именами и одним расширением в типа: file00.*, file01.*, … fileNN.*?

    Ответить
  • Андрей
    29 июня 2023 06:02

    Чтобы я не написал, пишет: rename: not enough arguments
    Что писал:
    rename -vnai ‘s/.*/0$.txt/’ test

    Ответить

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

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

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


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