【发布时间】:2022-02-15 17:13:16
【问题描述】:
试图删除文件“a.txt”
这行得通,
[ -f "a.txt" ] && rm -v -f a.txt
但是,如果我想删除多个文件“a.txt”、“a.txt.bak1”、“a.txt.bak2”,则以下语法不起作用
[ -f "a.txt*" ] && rm -v -f a.txt*
你能帮忙吗?
【问题讨论】:
-
您真的需要在删除它们之前测试它们是否存在并且是常规文件吗?如果不是,为什么不简单地使用
rm -fv a.txt*? -
类似
find -type f -name 'a.txt*' -print -delete. -
测试实际上应该做什么?如果您想知道是否存在至少一个与模式
a.txt*匹配的文件,则必须使用此模式的所有文件填充一个数组,然后测试该数组是否为空。但是,您为什么要测试文件是否存在? -
感谢@Fravadona 和大家的澄清。我会用 find 代替。