解释 Linux find 命令:删除特定目录下超过 30 天的日志文件/n/n这段代码使用 find 命令查找名为 $base_path(变量)的目录下,不包括名为 'audit' 的子目录,且修改时间超过 30 天且文件名以 '.log.' 结尾的文件,并将其删除。/n/nbash/nfind $base_path 'audit' -prune -o -mtime +30 -name /'*.log.*/' -exec rm -f {} /;/n/n/n### 代码解释/n/n* find $base_path: 在 $base_path 目录下查找文件。/n* 'audit' -prune: 排除名为 'audit' 的子目录。-prune 表示对匹配到的目录进行剪枝,不再递归进入该目录下查找。/n* -o: 逻辑运算符,表示 '或' 的关系。/n* -mtime +30: 查找修改时间超过 30 天的文件。/n* -name /'*.log.*/': 查找文件名以 '.log.' 结尾的文件。/n* -exec rm -f {} /;: 执行 rm -f 命令删除匹配到的文件。{} 代表匹配到的文件名,/; 表示命令结束。/n/n### -o 的理解/n/n-o 是逻辑运算符 '或',将 -prune-mtime +30 连接起来,表示满足以下条件之一的文件将会被删除:/n/n1. 不属于 'audit' 目录下的文件。/n2. 修改时间超过 30 天的文件。/n/n### 总结/n/n该代码的作用是查找名为 $base_path 目录下,不包括名为 'audit' 的子目录,且修改时间超过 30 天且文件名以 '.log.' 结尾的文件,并将其删除。

Linux find 命令解析:删除特定目录下超过30天的日志文件

原文地址: https://www.cveoy.top/t/topic/nVGY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录