在我的文件夹中,我想删除以两位数字结尾的文件(10,11,12等)
我试过的是
rm [0-9]*
但它似乎不起作用。
这样做的正确语法是什么?
将评论转换为答案。
您的要求有点模糊。 但是,您可以使用:
rm -i *[0-9][0-9]
只要你不介意以三位数字结尾的文件被删除。 如果您不介意被删除的三位数字文件,请使用:
rm -i *[!0-9][0-9][0-9]
(假设Bash历史扩张并不妨碍)。 请注意,如果您的文件名仅包含2位数字,则不会被删除。 这将需要:
rm -i [0-9][0-9]
-i
选项用于交互式。 实验globbing和rm
命令通常是一个坏主意,因为如果你弄错了,你可能会造成很大的损失。 但是,您可以使用其他技术来消除危险,例如:
echo *[!0-9][0-9]
它回应所有的文件名,或者:
printf '%s\n' *[!0-9][0-9]
其中每行列出一个文件名。 基本上,在试验文件删除时要小心 – 除非你知道你有好的备份,否则不要冒险犯错。 即使如此,最好不要使用它们
另请参阅GNU Bash手册:
^
代替!
。 shopt
命令
rm [0-9]*
意味着删除以数字开头的所有文件 。 []
内的范围单次展开。
而你打算删除以两位数字结尾的文件,所以命令应该是
rm *[0-9][0-9]
如果你有一些文件扩展名,那么这个命令应该修改为
rm *[0-9][0-9]* or rm *[0-9][0-9].ext
其中ext
是像txt
一样的扩展