在我的文件夹中,我想删除以2位数字结尾的文件(10,11,12等)
我尝试过的是
rm [0-9]*
但似乎它不起作用。
这样做的正确语法是什么?
答案 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手册:
^
代替!
。shopt
built-in 答案 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