如何列出过去 30 天内在 unix 中创建的具有特定模式的文件

如何列出过去 30 天内在 unix 中创建的具有特定模式的文件

我正在使用以下命令,但它不起作用

find . PYRLLPS_GL_201610D2* -maxdepth 1 -mtime -30

我收到以下错误

find: bad option -maxdepth
find: [-H | -L] path-list predicate-list

答案1

-maxdepth不是由 POSIX 指定。您的版本似乎find不支持该主要版本。

这里讨论仅使用 POSIX 选项来实现相同效果的方法:


另外,目前还不清楚你想做什么,但你可能其本身的用法很find混乱:

如果您尝试查找名称以 开头的所有文件PYRLLPS_GL_201610D2,则应该使用-name运算符,并保护模式本身免于扩展(shell 通配符),以便find 看到模式本身,而不是由 shell 扩展的模式。

像这样:

find . -path '*/*/*' -prune -o -name PYRLLPS_GL_201610D2\* -mtime -30 -print

如果您尝试查找-mtime -30直接位于当前目录或PYRLLPS_GL_201610D2*当前目录中的目录之一中的所有文件,那么您的想法是正确的,只是缺少-maxdepth上面链接的解决方法。

答案2

find . -maxdepth 1 -name PYRLLPS_GL_201610D2*  -mtime -30

如果您想查找名为 PYRLLLPS_GL_201610D2AAAA 的文件,您需要以下代码:

find . -maxdepth 1 -name 'PYRLLPS_GL_201610D2*'  -mtime -30

相关内容