Обзор
`rename` — это мощная команда, используемая для изменения большого количества имен файлов в соответствии с правилом. Эта команда позволяет находить и заменять определенные строки в именах файлов, используя синтаксис регулярных выражений Perl, такой как `s/old_pattern/new_pattern/`. Например, вы можете легко автоматизировать такие задачи, как изменение всех расширений `.jpeg` на `.jpg` или замена пробелов в именах файлов на нижние подчеркивания (`_`).
Ключевые особенности
Основные особенности команды `rename` следующие:
- Изменяет имена нескольких файлов одновременно.
- Предоставляет мощную функцию замены по шаблону на основе регулярных выражений.
- В отличие от команды `mv`, которая изменяет файлы по одному, `rename` оптимизирована для пакетной обработки.
- Поддерживает режим `dry run` для предварительного просмотра результатов изменений, что помогает избежать ошибок.
Различия между rename и mv
И `rename`, и `mv` используются для переименования файлов, но различаются по функциональности и назначению.
- rename: Специализируется на пакетном изменении имен нескольких файлов на основе шаблонов.
- mv: Используется для изменения имени или перемещения одного файла или каталога. Для изменения нескольких файлов требуется скрипт.
Основные опции
Опции команды `rename`, которые часто используются, сгруппированы по назначению.
1) Пакетное изменение
2) Справка
Сгенерированная команда:
Комбинируйте команды.
Описание:
`rename` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Изучите возможности команды `rename` на различных примерах использования.
Изменение расширения файла
rename 's/\.jpeg$/.jpg/' *.jpeg
Изменяет все расширения `.jpeg` на `.jpg` в текущем каталоге.
Изменение определенной строки в имени файла
rename 's/^image_/photo_/' *.jpeg
Изменяет `image_` на `photo_` во всех именах файлов, начинающихся с `image_`.
Замена пробелов на нижние подчеркивания
rename 's/ /_/g' *
Заменяет все пробелы (` `) в именах файлов на нижние подчеркивания (`_`).
Преобразование заглавных букв в строчные
rename 'y/A-Z/a-z/' *
Преобразует все заглавные буквы в именах файлов в строчные.
Предварительный просмотр результата изменений
rename -n 's/.html/.txt/' *.html
Предварительно просматривает результат изменения расширения `.html` на `.txt` без фактического изменения файла.
Установка
Команда `rename` не входит в стандартную поставку всех дистрибутивов Linux, поэтому ее необходимо установить с помощью приведенных ниже команд. В некоторых дистрибутивах название пакета может отличаться, например `perl-rename` или `prename`.
Debian/Ubuntu
sudo apt update
sudo apt install rename
RHEL/CentOS/Fedora
sudo dnf install prename
Arch Linux
sudo pacman -S perl-rename
Советы и меры предосторожности
Собраны моменты, на которые следует обратить внимание при использовании команды `rename`.
Советы
- В регулярных выражениях точка (`.`) означает любой символ, поэтому при изменении расширения необходимо экранировать ее обратной косой чертой (`\`), например `\.jpeg`.
- `rename` — мощный инструмент, поэтому для предотвращения ошибок всегда рекомендуется сначала использовать опцию `-n` для предварительного просмотра результатов.
- Если имя файла содержит пробелы, его необходимо заключать в кавычки (`"`) при передаче в качестве аргумента.