Renomear arquivos em lote no Linux

Renomear arquivos em lote no Linux

Como posso renomear imagens com o comando 'renomear' de "something_full.jpg" para "something_500.jpg" recursivo?

Responder1

Basicamente, você pode usar a renameferramenta para isso. Deve vir em uma versão baseada em Perl com distribuições Linux baseadas em Debian, mas você pode facilmentebaixeda fonte também (obviamente, você precisa torná-lo executável primeiro com chmod +x).


O comando a seguir substituirá a _fullparte em _500todos os arquivos JPG no diretório atual.

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

Para fazer isso recursivamente, começando no diretório atual, use renamewith find.

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

Observação:Você pode querer testar o comando antes de realmente executá-lo. Para fazer isso, adicione a -nopção rename(por exemplo, entre renamee a 's//'string).

Responder2

Você pode querer investigarzmv. zmv é um recurso específico do zsh e precisa autoload -U zmvestar em algum lugar do seu .zshrcarquivo.

EDITAR: Por exemplo, a tarefa proposta pelo OP poderia ser resolvida com

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

Um trecho da zshcontribpágina de manual:

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

Mova (geralmente, renomeie) arquivos que correspondam ao padrão srcpat para arquivos correspondentes com nomes no formato dado por dest, onde srcpat contém parênteses em torno de padrões que serão substituídos por $1, $2, ... em dest. Por exemplo,

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

renomeia foo.lispara foo.txt, my.old.stuff.lispara my.old.stuff.txte assim por diante.

O padrão é sempre tratado como um padrão EXTENDED_GLOB. Qualquer arquivo cujo nome não seja alterado pela substituição é simplesmente ignorado. Qualquer erro (uma substituição resultou em uma string vazia, duas substituições deram o mesmo resultado, o destino era um arquivo regular existente e -f não foi fornecido) faz com que toda a função seja abortada sem fazer nada.

Os padrões EXTENDED_GLOB são tremendamente poderosos.Aquié uma boa introdução ao conceito.

informação relacionada