変換後にrmフォーマットができません

変換後にrmフォーマットができません

rmコマンドで指定された形式のすべてのファイルが削除されるように、次のコマンドを変更するにはどうすればよいですか?

#!/bin/bash
mogrify -verbose -format webp -quality 70 *.jpg *.jpeg *.JPEG *.JPG *.png *.PNG && rm --verbose *.jpg *.jpeg *.JPEG *.JPG *.png *.PNG
$SHELL

このコマンドは画像をwebpに正常に変換しますが、rmは元のファイルを削除しません。

webpに変換した後、次のエラーが発生します。

mogrify-im6.q16: unable to open image `*.jpeg': No such file or directory @ error/blob.c/OpenBlob/2874.
mogrify-im6.q16: unable to open image `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2874.
mogrify-im6.q16: unable to open image `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2874.
mogrify-im6.q16: unable to open image `*.png': No such file or directory @ error/blob.c/OpenBlob/2874.
mogrify-im6.q16: unable to open image `*.png': No such file or directory @ error/blob.c/OpenBlob/2874.
mogrify-im6.q16: unable to open image `*.PNG': No such file or directory @ error/blob.c/OpenBlob/2874.
mogrify-im6.q16: unable to open image `*.PNG': No such file or directory @ error/blob.c/OpenBlob/2874.

答え1

bashワイルドカードパターンを使用する前に、このオプションをスクリプトに追加してください。

shopt -s nullglob

これは、一致しないパターンをリテラルとして残さずに削除するようにシェルに指示します。したがって、あなたの例では、*.pngアスタリスク(存在しない可能性があります)で始まる5文字のファイル名のままではなく削除されます。

関連情報