数十のフォルダに分散している複数の特定の画像を一括変換します

数十のフォルダに分散している複数の特定の画像を一括変換します

コマンドラインのみのサーバー上の異なるフォルダーにそれぞれ配置されている JPG ファイルのリストがあり、これを PNG に変換する必要があります。

mogrify を使用して 1 つずつ変換する簡単なコマンドは知っています。しかし、次のように、さまざまなフォルダーにさまざまな名前の画像が約 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

#!/bin/bash対話型の bash コマンドラインで実行することも、先頭に shebangが付いたスクリプトとして実行することもできます。

関連情報