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文字のファイル名のままではなく削除されます。