Preciso renomear todos os arquivos de imagem em um diretório e nomeá-los como for chamada a pasta em que estão ... Isso é possível usando um script Bash?
Também preciso numerá-los (0001.jpg, 0002.jpg, 0003.jpg, ect...) consecutivamente. O problema que estou tendo é que há alguns saltos entre os números. (0018.jpg, 0019.jpg, 0025.jpg, 0026.jpg, ect...) Gostaria de renomear 0025.jpg para seja 0020.jpg e 0026.jpg seja 0021.jpg ect...
Responder1
Sim é possivel. Você pode usar find /search/path -type d
para localizar todos os diretórios e usar a opção -exec para executar algumas ações com o caminho do diretório como parâmetro. E você pode ter um script bash que roda NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done;
ou algo assim
Responder2
Para usar este comando você deve 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á semelhante a:
0001<dirname>.jpg