查找超过 30 天的日志文件

lin*_*bee 3 linux find

我正在编写一个脚本来查找给定文件夹中超过 30 天的文件。根据要求,我必须仅删除扩展名为.log.out 的文件并跳过子目录。

以下命令返回 30 天前修改的所有 .log* 文件。然而,它正在返回所有 .out 文件,甚至是最近的文件。下面的代码有问题吗?

    find -maxdepth 1 -mtime +30 -type f -name "*.log*" -o -name "*.out*"
Run Code Online (Sandbox Code Playgroud)

你能告诉我上面的陈述有什么问题吗

Joh*_*024 8

尝试:

find -maxdepth 1 -mtime +30 -type f \( -name "*.log*" -o -name "*.out*" \)
Run Code Online (Sandbox Code Playgroud)

问题是find绑定逻辑 - 并且比逻辑 - 或更紧密。父母反对这一点。

如果没有括号,find寻找匹配的文件,无论是(A)-mtime +30 -type f -name "*.log*" (B) -name "*.out*"

使用括号,find正在寻找 (a) 匹配-mtime +30 -type f (b) 匹配-name "*.log*"或 的文件-name "*.out*"