Converta em lote várias imagens específicas espalhadas por dezenas de pastas

Converta em lote várias imagens específicas espalhadas por dezenas de pastas

Eu tenho uma lista de arquivos JPG, cada um localizado em pastas diferentes no meu servidor somente de linha de comando, que preciso converter para PNG.

Eu conheço o comando simples para convertê-los um por um usando o mogrify. Mas tenho cerca de 300 imagens de nomes diferentes espalhadas por todas as pastas, assim:

/home/user/dfp/app/roundtable/wp-content/uploads/2022/06/play.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2021/02/turn.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2020/01/up.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2022/09/down.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2021/01/left.jpg
etc etc

Também existem milhares de outras imagens em cada um dos diretórios, que não quero que sejam alteradas. Apenas os arquivos específicos da minha lista.

Existe um relógio fácil para converter em lote/em massa a lista de imagens que tenho? Eu literalmente tenho uma lista de imagens, como no exemplo acima, em um arquivo .txt.

Responder1

Você pode usar um loop de shell simples para ler e processar os nomes de arquivos do arquivo de lista. Em um bashshell, por exemplo:

while IFS= read -r file; do
  # your mogrify command on "$file"
done < path/to/listfile.txt

Você pode executá-lo na linha de comando interativa do bash ou como um script com o #!/bin/bashshebang no topo.

informação relacionada