lote renomear arquivos

4

Eu tenho vários arquivos de foto com formato de nome inconsistente.

  • beach north.JPG
  • praia sul sm.jpg
  • Bryce windsurfe sm.jpg
  • DSC01031 1024x.jpg
  • DSC02652 ed sm.jpg
  • DSC03229 sm.jpg
  • Kayak kids 2.jpg
  • Maui 5-05 (31) 1024.jpg
  • Maui cai 05 (41) sm.jpg
  • baleia maui (2) sm.jpg
  • baleia maui (6) ed.jpg
  • P1000018 sm.jpg
  • P1000030 sm.jpg
  • P1000056 sm.jpg
  • P1000148 sm.jpg
  • P1000397 sm.jpg
  • P1000490 sm.jpg
  • P1000629 sm.jpg
  • P1000995 sm.jpg
  • P1010006 1024.jpg
  • P1010089 1024x.jpg
  • P1050988 ed sm.jpg

Eu não deseja renomear as extensões, mas mudar o nome do primeiro .jpg na lista como 1.jpg, segundo 2.jpg, terceiro 3.jpg, etc. Como posso fazer isso com um comando?

    
por Tyler Zika 28.06.2014 / 00:34

1 resposta

4

Use apenas um loop no shell:

for x in * ; do mv -- "$x" "$((i=i+1)).jpg" ; done

Analisamos cada arquivo no diretório atual, um de cada vez, chamando-o x e, em seguida, movemo-lo para $i.jpg , onde incrementamos $i de um a cada vez. $((...)) é expansão aritmética e as atribuições retornam o valor atribuído. modifica i e retorna o novo número a cada vez.

Se você for fazer isso mais de uma vez, digamos que em diretórios diferentes, você vai querer redefinir o contador entre: basta dizer i=0 , ou colocar i=0; no início do comando. / p>     

por 28.06.2014 / 00:39