删除名称中具有特定模式的文件

Edw*_*lds 1 bash shell-script wildcards files

我想删除名称开头有两个数字和一个点的所有文件,
例如:

01. abc
02. xyz
Run Code Online (Sandbox Code Playgroud)

Gil*_*not 7

递归地:

find . -type f -name '[0-9][0-9].*' -delete
Run Code Online (Sandbox Code Playgroud)

需要 GNU 查找,或:

find . -type f -name '[0-9][0-9].*' -exec rm {} \;
Run Code Online (Sandbox Code Playgroud)

  • @glennjackman 是的,但在这种情况下没有引号。 (3认同)

mat*_*tdm 7

rm [0-9][0-9].*
Run Code Online (Sandbox Code Playgroud)

将对当前目录中的文件执行此操作(没有引号 - 您匹配文件)。在.不需要不进行转义,因为这是一个shell水珠,而不是一个正则表达式(如果它是一个正则表达式,这将是一个通配符)。

如果您希望递归地执行此操作,这find可能是您最好的选择。