转换后无法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

这告诉 shell 删除不匹配的模式,而不是将它们保留为文字。因此,从您的示例中,*.png将被删除而不是保留为以星号开头的五个字符的文件名(可能不存在)。

相关内容