Batch renomeia arquivos no Linux

7

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

    
por Ticksy 14.04.2012 / 19:07

2 respostas

6

Basicamente, você pode usar a ferramenta rename para isso. Ele deve vir em uma versão baseada em Perl com distribuições Linux baseadas no Debian, mas você pode facilmente faça o download da fonte também (obviamente, você precisa torná-lo executável primeiro com chmod +x ).

O comando a seguir substituirá a parte _full por _500 em todos os arquivos JPG no diretório atual.

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

Para fazer isso de forma recursiva, a partir do diretório atual, use rename com find .

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

Nota: Você pode querer testar o comando antes de executar a is. Para fazer isso, adicione a opção -n a rename (por exemplo, entre rename e a 's//' string).

    
por 14.04.2012 / 19:30
1

Você pode procurar em zmv . O zmv é um recurso específico do zsh e requer que o autoload -U zmv esteja em algum lugar no arquivo .zshrc .

EDIT: Como exemplo, a tarefa que o OP propôs poderia ser resolvida com

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

Um trecho da página zshcontrib man:

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

Move (usually, rename) files matching the pattern srcpat to corresponding files having names of the form given by dest, where srcpat contains parentheses surrounding patterns which will be replaced in turn by $1, $2, ... in dest. For example,

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

renames foo.lis to foo.txt, my.old.stuff.lis to my.old.stuff.txt, and so on.

The pattern is always treated as an EXTENDED_GLOB pattern. Any file whose name is not changed by the substitution is simply ignored. Any error (a substitution resulted in an empty string, two substitutions gave the same result, the destination was an existing regular file and -f was not given) causes the entire function to abort without doing anything.

Os padrões

EXTENDED_GLOB são tremendamente poderosos. Aqui é um bom manual sobre o conceito.

    
por 16.04.2012 / 00:03