?(pattern-list)
Matches zero or one occurrence of the given patterns
*(pattern-list)
Matches zero or more occurrences of the given patterns
+(pattern-list)
Matches one or more occurrences of the given patterns
@(pattern-list)
Matches one of the given patterns
!(pattern-list)
Matches anything except one of the given patterns
您可以使用
find
命令,但在使用时要小心——您最终可能会删除所有您拥有的东西。重要提示:首先,您必须在没有
-delete
选项的情况下运行命令,以确保输出是您要删除的内容。请注意,它会-name
查找确切的文件名。如果输出正确并且您确定该命令仅定位我们要删除的文件,那么您必须将该
-delete
选项添加到命令的 END。选项的顺序
find
很重要,在这种情况下,如果-delete
选项放置在命令末尾以外的任何位置 - 它将删除所有内容。例子
假设我们有这些文件:
让我们列出所有
*.log
不包括mongodb.log
. 检查输出并确保它不包含log
文件以外的任何内容。-iname
!保留大写和小写版本的mongodb.log
.然后使用以下方法删除它们:
再次检查,您将看到日志文件已按预期消失,但
mongodb.log
仍保留在那里。要删除除名为 的文件之外的所有文件
mongodb.log
,您可以使用扩展通配符。首先,启用选项:然后,您可以运行:
或者,要仅删除带有
.log
扩展名的文件,而不是mongodb.log
,您可以执行以下操作:例如:
如果您需要它是递归的,以匹配子目录中的文件,您可以使用以下
globstar
选项:然后运行:
例如:
来自
man bash
: