GNU Parallelは for ループよりもさらに簡単で、多くの場合高速です。
parallel convert -resize 800x600 -- "{}" "{.}-resized.jpg" ::: *.jpg
ここでは、右から左にいくつかのことが行われています。
::: *.jpg
すべてのjpgファイルに対してコマンドを実行することを意味します
{.}
サフィックスなしで現在のファイル名を挿入することを意味します ( .jpg
)
{}
現在のファイル名を挿入することを意味します
parallel
は、次のコマンドを並行して何度も実行することを意味します。コンピューターのコア数に合わせて、並列で実行する最大数が選択されます。それぞれが終了すると、すべての jpg ファイルが変換されるまで次のファイルが起動されます。
convert --resize 800x600 -- foo.jpg foo-resized.jpg
これにより、各ファイルに対してコマンドが実行されます。ファイル名が --
たまたま.-
PS私のMacにはHomebrewがインストールされているので、並列にインストールして変換することができました
brew install parallel
brew install imagemagick