Пакетное преобразование нескольких определенных изображений, разбросанных по десяткам папок

Пакетное преобразование нескольких определенных изображений, разбросанных по десяткам папок

У меня есть список файлов JPG, каждый из которых находится в разных папках на моем сервере, работающем только с командной строкой, и мне нужно преобразовать их в PNG.

Я знаю простую команду, чтобы конвертировать их по одному с помощью mogrify. Но у меня около 300 изображений с разными именами, разбросанных по разным папкам, вот так:

/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

В каждом из каталогов есть тысячи других изображений, которые я вообще не хочу менять. Только определенные файлы в моем списке.

Есть ли простой способ пакетной/массовой конвертации списка изображений, которые у меня есть? У меня буквально есть список изображений, как в примере выше, в файле .txt.

решение1

Вы можете использовать простой цикл оболочки для чтения и обработки имен файлов из файла списка. В bashоболочке, например:

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

Вы можете запустить его либо в интерактивной командной строке bash, либо как скрипт с #!/bin/bashshebang в верхней части.

Связанный контент