我在使用 find 命令搜索文件及其处理搜索的方式时遇到了一些问题。
假设我目前在目录 /tmp 中,该目录包含以下文件:backup-20151219.zip、backup-20151220.zip、backup-20151221.zip。
然后我的搜索命令是:
[root@server tmp]# find /tmp -type f -mtime +2 -name backup* -exec rm -f {} \;
Run Code Online (Sandbox Code Playgroud)
我得到以下信息:
find: paths must precede expression: backup-20151219.zip
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Run Code Online (Sandbox Code Playgroud)
那是因为它匹配了 backup* regex 并将其用作搜索模式,而不是使用它来过滤结果。我知道的。
如果我切换到另一个不包含以 backup* 开头的文件的目录,它会显示预期的结果。
所以,我想知道是否有办法在可能包含匹配项的目录中使用通配符搜索文件并将它们显示为结果。