Команда rename может использоваться для переименования одновременно нескольких файлов в Linux. Вот несколько практических сценариев, в которых вы можете использовать команду rename.
Мы предполагаем, что вы уже знаете, как переименовать файлы в Linux с помощью команды mv. Вы просто используете его в формате:
mv old_file_name new_file_name
В этом методе нет ничего плохого. Это стандартный способ в конце концов.
Но как насчет ситуации, когда вам нужно переименовать несколько файлов. Использование команды mv один за другим займет много времени, и этого, безусловно, следует избегать.
Вы можете использовать параметр команды find exec с командой mv для автоматизации этого процесса. Но позвольте нам рассказать вам еще более простой способ переименования файлов на основе шаблона регулярных выражений.
Существует утилита командной строки под названием rename, которая позволяет вам переименовывать все файлы, которые соответствуют определенному шаблону в форме регулярного выражения Perl. Команда rename работает только с именем файла, а не с самим файлом.
Это синтаксическая команда переименования:
rename [options] perlexpr [files]
Команда rename имеет следующие параметры:
Обратите внимание, что команда rename не является стандартной утилитой, предварительно установленной в дистрибутивах Linux, таких как команда mv или cp . Возможно, вам придется установить ее. Если вы пользователь sudo в Ubuntu или Debian, вы можете использовать эту команду для установки переименования:
sudo apt install rename
Теперь вам должно быть интересно, как переименовать файлы с помощью команды rename. Позвольте нам показать два практических сценария, в которых эта команда сэкономит вам много времени.
Представьте, если у вас есть пробелы в нескольких именах файлов. Это кошмар для обработки пробелов в именах файлов в Linux. Вот почему ни один опытный пользователь никогда не называет файл с пробелами в нем.
Естественно, вы хотите удалить пробелы и заменить их подчеркиванием (_). Команда переименования будет очень удобна здесь. Посмотрим как.
Чтобы заменить пробелы символами подчеркивания в именах всех файлов в текущем каталоге, все, что вам нужно сделать, это использовать команду renam следующим образом:
rename 's/ /_/g' *
Если вы даже отдаленно знакомы с регулярными выражениями , вы поймете, что s / / _ / g ищет пространство и заменяет все вхождения пространства на _.
Интересная часть — звездочка (*). Звездочка говорит вам переименовать соответствующие файлы в текущем каталоге.
Но что, если вы хотите переименовать все соответствующие файлы в подкаталогах? В этом случае вы можете использовать две звездочки, как это:
rename 's/ /_/g' **
Вот еще один сценарий для вас. У вас есть несколько файлов с именами, такими как my_file.xyz, и вы хотите переименовать эти файлы, чтобы они стали чем-то вроде my_file.abc.
Чтобы изменить расширения нескольких файлов одновременно, вы можете использовать команду переименования следующим образом:
rename 's/.xyz$/.abc/' **
Позвольте нам объяснить вам вышеуказанную команду.
‘s / .xyz $ /. abc /’: это регулярное выражение, которое означает замену символа .xyz в конце строки на .abc.
** означает поиск в текущем каталоге и его подкаталогах.
Вам понравилась команда rename?
Не многие люди знают о команде rename. Это также может быть связано с тем, что переименование не является командой defacto во многих системах Linux.
Тем не менее, мы находим эту команду довольно удобной при одновременном переименовании нескольких файлов.
Как насчет вас? Вы использовали команду rename в прошлом? Как вы предпочитаете переименовывать несколько файлов одновременно?