Convierta por lotes varias imágenes específicas repartidas en docenas de carpetas

Convierta por lotes varias imágenes específicas repartidas en docenas de carpetas

Tengo una lista de archivos JPG, cada uno ubicado en diferentes carpetas en mi servidor de línea de comandos únicamente, que necesito convertir a PNG.

Conozco el comando simple para convertirlos uno por uno usando mogrify. Pero tengo alrededor de 300 imágenes con diferentes nombres repartidas en todas las carpetas diferentes, así:

/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

También hay miles de otras imágenes en cada uno de los directorios que no quiero que se modifiquen en absoluto. Solo los archivos específicos de mi lista.

¿Existe una forma sencilla de convertir por lotes o en masa la lista de imágenes que tengo? Literalmente tengo una lista de imágenes, como en el ejemplo anterior, en un archivo .txt.

Respuesta1

Puede utilizar un bucle de shell simple para leer y procesar los nombres de archivo del archivo de lista. En un bashshell por ejemplo:

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

Puede ejecutarlo en la línea de comando interactiva de bash o como un script con el #!/bin/bashshebang en la parte superior.

información relacionada