Bash脚本删除给定目录中的所有图像文件

Ada*_*han 1 bash shell

我使用以下shell脚本来清​​除我正在运行的python脚本的后果:

echo "Cleaning up..."
# some other files removed here...
# removing some log files
if [ -f log_errors.txt ]; then
    rm log_errors.txt
fi
# removing all the generated image files
if [ -f IMG_* ]; then
    rm IMG_*
fi
# some more files removed here...
ls
Run Code Online (Sandbox Code Playgroud)

但是,在做的时候bash clean.sh,我收到以下错误:

Cleaning up...
clean.sh: line 11: [: too many arguments
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?提前致谢.

编辑:请考虑此目录中没有子文件夹.

Tom*_*ech 8

IMG_*正在扩展到与模式匹配的文件的完整列表,因此您的测试将最终变成类似的东西if [ -f IMG_1 IMG_2 IMG_3 ...,这是太多的参数!

如果您总是想要删除与模式匹配的所有文件,那么只需将-f参数传递给rm并丢失if:

rm -f IMG_*
Run Code Online (Sandbox Code Playgroud)

如果没有找到文件,这将删除它可以做的一切,什么也不做.