大量に ffmpeg でファイルを処理する必要があったので、 find
コマンドから while read -r
につないで ffmpeg
を実行していたら、2 回に 1 回ファイルが見つからずにエラーになった。
set -e readonly fromDir="images/original" readonly toDir="images/dest" declare filepath while read -r filepath; do echo "${filepath}" ffmpeg \ -i "${filepath}" \ -vf scale=240:180 \ "${toDir}/${filepath##*/}" 2>/dev/null done < <(find "${fromDir}" -type f -name '*.png')
これを以下のルートディレクトリーで実行すると…
2 番目のファイルのパスの先頭一文字消えている
find
を記述する位置を変更してもファイル名が正しく読み取れなかったので、多分そういうものなのだろう…
上記のコマンドについては、 -i "${filepath}"
の部分を -i "${fromDir}/${filepath##*/}"
に変更して事なきを得た