Renomeando um monte de arquivos usando a linha de comando

7

Suponha que eu tenha uma pasta com milhares de fotos nomeadas aleatoriamente. Como alguém pode renomeá-los como photo1, photo2, ..., photo1000 a partir da linha de comando / terminal?

    
por Just Ask 23.05.2014 / 20:09

2 respostas

11

Assumirei que você deseja manter um sufixo apropriado nos nomes de arquivo:

c=1; for f in *.jpg ; do mv "$f" "photo$c.jpg" ; c=$(($c+1)) ; done

Notas

  • c=1 : isso inicia o contador. Você pode configurá-lo para qualquer número que desejar.

  • for f in *.jpg ; do : isso significa o início de um shell for -loop. Embora muito do shell-scripting possa ser difícil de fazer funcionar quando os nomes dos arquivos podem conter espaços, novas linhas ou outros caracteres difíceis, essa construção é segura até contra os nomes de arquivos mais hostis.

  • mv "$f" "photo$c.jpg" : usa o contador c e faz a renomeação real dos arquivos. O nome do arquivo $f está entre aspas duplas para proteger o nome das várias expansões de shell possíveis.

  • c=$(($c+1)) : isso aumenta o contador para o próximo loop

  • done : significa o final do ciclo for .

por John1024 23.05.2014 / 20:38
3

Você pode usar este código:

for i in *.jpg; do let j+=1 ; mv "$i" "photo$j.jpg" ; done
    
por nux 23.05.2014 / 21:04