Eu preciso renomear todos os arquivos de imagem em um diretório e nomeá-los em qualquer pasta em que eles são chamados

2

Eu preciso renomear todos os arquivos de imagem em um diretório e nomeá-los em qualquer pasta em que eles são chamados ... Isso é possível usando um script Bash?

Eu também preciso numerá-los (0001.jpg, 0002.jpg, 0003.jpg, ect ...) consecutivamente. O problema que estou tendo é que existem alguns saltos entre os números .. (0018.jpg, 0019.jpg, 0025.jpg, 0026.jpg, ect ...) Eu gostaria de mudar o nome do 0025.jpg para seja 0020.jpg e o 0026.jpg seja 0021.jpg ect ...

    
por Johnny 02.11.2012 / 06:34

2 respostas

0

Sim, é possível. Você pode usar find /search/path -type d para encontrar todos os dirs e usar a opção -exec para executar algumas ações com o caminho do diretório como parâmetro. E você pode ter o script bash que executa NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done; ou algo assim

    
por 02.11.2012 / 12:30
0

Para usar este comando, você precisa estar no diretório onde estão os arquivos .jpg ou personalizar um pouco o comando.

 let a=0; for i in *.jpg; do let a=a+1; b='basename $PWD'; c='printf %04d$b.jpg $a'; mv $i $c; done

A saída será parecida com:

0001<dirname>.jpg
    
por 02.11.2012 / 14:05

Tags