在linux中删除以2位数字结尾的文件

在我的文件夹中,我想删除以两位数字结尾的文件(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一样的扩展