ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Переименовать файлы Linux с помощью Rename

Переименовать файлы Linux с помощью Rename

При работе с файлами их переименование – одно из самых основных действий. В Linux переименование файла или каталога в основном выполняется с помощью mv. Однако когда дело доходит до переименования нескольких файлов или папок, использование mv становится сложным. Для выполнения этой работы требуется создание сложных петель и трубопроводов. Команда переименования специально разработана для таких ситуаций.

Rename – это мощный инструмент пакетного переименования, который использует выражение Perl для переименования нескольких файлов и каталогов с помощью одной команды. В этой статье вы узнаете, как переименовывать файлы с помощью функции переименования.

 

Установка Rename

Команда Rename не предустановлена. К счастью, мы можем установить его с официальных серверов пакетов любого дистрибутива Linux.

Существует две версии инструмента, каждая со своим синтаксисом и функцией. В этой статье мы сосредоточимся на том, что использует Perl.

В случае Debian/Ubuntu переименование доступно как «переименование» пакета. Установите пакет.

$ sudo apt update

$ sudo apt install rename

 

В случае CentOS и Fedora имя пакета другое. Он известен как «prename». Установите пакет.

$ sudo yum install prename

 

В случае Arch Linux имя пакета – «perl-rename». Установите пакет.

$ sudo pacman -S perl-rename

Использование переименования

Давайте посмотрим на различные способы использования команды переименования.

 

Базовая структура команд

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

$ rename <options> <perl_expression> <files>

Команда rename на самом деле является сценарием Perl. Он работает с использованием выражения Perl. Как вы можете догадаться, для его полного использования требуется опыт работы с регулярными выражениями Perl.

Хотя существует множество способов построения выражения Perl, следующее выражение довольно часто встречается при работе с командой rename.

$ s/<search_pattern>/<replacement>/

Основное использование

Здесь у меня есть куча фиктивных файлов, готовых к переименованию.

 

Следующая команда переименования переименует все расширения файлов с TXT на TEXT.

$ rename 's/.txt/.text/' *.txt

 

Здесь целевые файлы для переименования выражаются с помощью символа подстановки (*).

 

Подробный режим

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

Чтобы выполнить переименование в подробном режиме, добавьте флаг «-v».

$ rename -v 's/.txt/.text/' *.txt

 

Пробный запуск

При запуске переименования изменения становятся постоянными. Во многих ситуациях это приведет к ненужным неприятностям. Чтобы предотвратить нежелательные изменения в именах файлов и папок, мы можем протестировать команду с помощью пробного запуска.

Пробный запуск – это в основном тестовый запуск, который ничего не меняет с фактическими файлами и папками. Однако при использовании подробного режима вывод будет выводиться так, как если бы команда действительно была выполнена. Вот почему всегда рекомендуется пробовать пробный прогон в подробном режиме. Перед запуском любой команды переименования для важных файлов и папок рекомендуется выполнить пробный запуск.

Чтобы выполнить пробный прогон, добавьте флаг «-n».

$ rename -v -n 's/.txt/.text/' *.txt

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

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

$ rename -v -f 's/.txt/.text/' *.txt

 

Пример переименования выражений Perl

Основная структура команды переименования очень проста. Его основная сила – это включение регулярных выражений Perl. Регулярное выражение – это умный способ описания шаблона и указания действий. Для новичков вот руководство по регулярным выражениям с использованием grep и egrep . Несмотря на использование различных инструментов, основы регулярных выражений по-прежнему применяются.

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

 

Замена пробелов

Следующее выражение заменит пробелы в именах файлов на подчеркивание.

$ 'y/ /_/'

 

Преобразование имен файлов в верхний регистр

Нужны имена файлов в верхнем регистре? Следующее выражение Perl в сочетании с командой переименования сделает именно это.

$ 'y/a-z/A-Z/'

Преобразование имен файлов в нижний регистр

Следующее выражение Perl при использовании с переименованием переименует имена файлов из верхнего регистра в нижний.

$ 'y/A-Z/a-z/'

 

Удаление частей имен файлов

Если имена файлов содержат ненужное содержимое, мы всегда можем удалить их с помощью выражения Perl. Например, чтобы переименовать файлы резервных копий (.bak) в исходные файлы, мы можем просто удалить часть «.bak» из имени файла.

$ 's/\bak$//'

 

Переименование нескольких совпадающих шаблонов

Допустим, у вас есть файлы TEXT и TXT. Несмотря на разные расширения файлов, оба они имеют один и тот же формат. Вместо того, чтобы иметь дело с TEXT и TXT, мы можем переименовать их все в файлы TXT.

$ 's/\.te?xt$/.txt/i'

 

Точно так же, вместо того, чтобы иметь дело с JPEG и JPG, мы можем переименовать их все в JPG.

$ 's/\.jpe?g$/.jpg/i'

 

Обратите внимание, что в обоих случаях расширения файлов имеют сходство, за исключением одного символа. Вот почему мы могли использовать этот ярлык. Если расширения файлов совершенно разные, то работать не будет.

 

Заключение

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

Exit mobile version