Como renomear arquivos para números de seqüência incrementos monotônicos seguidos de um sufixo?

0

Eu quero renomear todos os arquivos em um diretório particular para um número seguido por um sufixo. Por exemplo, quero renomear todos os arquivos * .jpg para 1.jpg, 2.jpg, 3.jpg, ...

Eu pensei em usar find para isso (algo como find ./*.jpg --exec mv {} <number_of_iteration>.jpg ), mas não sei o que eu colocaria como <number_of_iteration> .

Posso usar find para fazer isso? Ou há uma maneira melhor?

    
por Gabrijel Šimunović 10.01.2015 / 19:09

1 resposta

1

Você precisaria manter a iteração separadamente. Por exemplo, use um script move_count contendo o seguinte: -

[ -w ~/MoveCount ] || echo 0 >~/MoveCount
read count <~/MoveCount
((++count))
echo $count >~/MoveCount
mv "$1" "$count.${1##*.}"

Então seu comando find se tornaria:

find -iname "*.jpg" -exec bash -c "move_count {}" \;

Observe que bash é chamado explicitamente porque o padrão sh não entende algumas das sintaxes que usei. Como alternativa, faça #!/bin/bash a primeira linha de move_count .

    
por 10.01.2015 / 19:42

Tags