Meu primeiro instinto para arquivos de processamento em lote é quase sempre find
. É excelente se você precisa criar algum tipo de filtragem (o que você não faz aqui), mas ainda é um favorito. Isso também será usado em subdiretórios, a menos que você o informe (com -maxdepth 1
ou outro):
find -name '*.jpg' -exec convert "{}" "{}.pdf" \;
rename 's/\.jpg\.pdf$/.pdf/' *.jpg.pdf
A instrução find
/ convert
gerará uma carga de .jpg.pdf
arquivos. O segundo limpa isso.
Talvez uma abordagem um pouco mais elegante em um caso tão simples:
for file in *.jpg ; do convert "$file" "${file/%jpg/pdf}"; done
Isso não é obrigatório e você não precisa mexer na limpeza dos nomes de arquivos.
E eu quase me esqueci, o ImageMagick tem uma saída numérica que pode se encaixar perfeitamente no seu caso de uso. A seguir, basta colocar um identificador de três dígitos ( 000
, 001
, 002
, etc) no final do "myPDF":
convert *.jpg myPDF%03d.pdf
Obviamente, se você está lidando com mais de mil entradas, aumente o número. Se você não quiser zerar, remova o zero inicial.