Пакетное переименование файлов в Linux

Пакетное переименование файлов в Linux

Как переименовать изображения с помощью команды «rename» из «something_full.jpg» в «something_500.jpg» рекурсивно?

решение1

В принципе, вы можете использовать этот renameинструмент для этого. Он должен быть в версии на основе Perl с дистрибутивами Linux на основе Debian, но вы можете легкозагрузитьтакже из исходного кода (очевидно, сначала его нужно сделать исполняемым с помощью chmod +x).


Следующая команда заменит _fullчасть _500во всех файлах JPG в текущем каталоге.

rename 's/_full/_500/' *.jpg

Чтобы сделать это рекурсивно, начиная с текущего каталога, используйте renamewith find.

find . -type f -iname "*.jpg" -exec rename 's/_full/_500/' {} \;

Примечание:Вы можете захотеть протестировать команду перед ее фактическим выполнением. Чтобы сделать это, добавьте опцию -n( renameнапример, между renameи 's//'строкой).

решение2

Возможно, вам стоит рассмотретьзмв. zmv — это специфическая функция zsh, которая должна autoload -U zmvнаходиться где-то в вашем .zshrcфайле.

EDIT: Например, задача, поставленная автором, может быть решена с помощью

noglob zmv '(*)_full.(*)' '$1_500.$2'

Отрывок из zshcontribстраницы руководства:

zmv [ -finqQsvwW ] [ -C | -L | -M | -p program ] [ -o optstring ] srcpat dest

Переместить (обычно переименовать) файлы, соответствующие шаблону srcpat, в соответствующие файлы с именами в форме, заданной dest, где srcpat содержит скобки, окружающие шаблоны, которые будут по очереди заменены на $1, $2, ... в dest. Например,

zmv '(*).lis' '$1.txt'

переименовывает foo.lisв foo.txt, my.old.stuff.lisв my.old.stuff.txtи т. д.

Шаблон всегда обрабатывается как шаблон EXTENDED_GLOB. Любой файл, имя которого не изменено подстановкой, просто игнорируется. Любая ошибка (подстановка привела к пустой строке, две подстановки дали одинаковый результат, пункт назначения был существующим обычным файлом и -f не был указан) приводит к прерыванию всей функции без выполнения каких-либо действий.

Шаблоны EXTENDED_GLOB чрезвычайно эффективны.Здесьявляется хорошим введением в концепцию.

Связанный контент