删除linux

时间:2017-09-07 05:54:46

标签: linux bash glob

在我的文件夹中,我想删除以2位数字结尾的文件(10,11,12等)

我尝试过的是

rm [0-9]*

但似乎它不起作用。

这样做的正确语法是什么?

2 个答案:

答案 0 :(得分:3)

将评论转换为答案。

您的要求有点含糊不清。但是,您可以使用:

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手册:

答案 1 :(得分:0)

命令

rxjs/rs

表示删除以数字开头的所有文件rm [0-9]* 范围内的范围是单次扩展的。

虽然您打算删除以双位数结尾的文件,因此命令应为

[]

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

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

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

之类的扩展名