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

Deleting files ending with 2 digits in 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 手册:

命令

rm [0-9]*

表示删除所有以数字开头的文件[]范围扩大一次

鉴于您打算删除以两位数结尾的文件,因此命令应该是

rm *[0-9][0-9]

如果你有一些文件扩展名,命令应该修改为

rm *[0-9][0-9]* or
rm *[0-9][0-9].ext

其中 ext 是像 txt

这样的扩展名