前言全局说明
Linux find命令删除N天或N小时前的文件或目录
一、模拟创建N天前的文件(夹)
1.1 生成不带0开头的文件名
| for i in {1..15}; do t=$i; touch -d "2024-01-0$i 00:00:00" $i.txt; done |

1.2 生成0开头的文件名
| for i in {01..15}; do t=$i; touch -d "2024-01-0$i 00:00:00" $i.txt; done |

1.3 生成00开头的文件名
| for i in {01..15}; do t=$i; touch -d "2024-01-0$i 00:00:00" $i.txt; done |

细心的人可能发现:
2024-01-0$i 的 $i 前多了个0 ,经过测试,这个不影响修改时间,正常用不到就要去掉。
这里为了演示就加上了
1.4 生成00开头的文件加
| for i in {001..15}; do t=$i; mkdir $i; touch -d "2024-01-0$i 00:00:00" $i; done |

二、删除N天前的 "文件"
假设, 执行命令的日期是,当月15日
2.1 删除10天前的文件(不算执行命令的这天)
| find . -mtime +10 -type f -name "*" -exec \rm -f {} \; |

2.2 删除1天前的文件(不算执行命令的这天)
| find . -mtime +1 -type f -name "*" -exec \rm -f {} \; |

三、删除N天前的 "文件夹"
| find . -maxdepth 1 -mtime +10 -type d -name "*" -exec \rm -rf {} \; |

四、删除N天前的 "文件" 和 "文件夹"
假设, 执行命令的日期是,当月15日
| find . -maxdepth 1 -mtime +3 -name "*" -exec \rm -rf {} \; |
如果要删文件,又删出文件夹,那么就不用-type 参数

五、命令解释:
| find 查找命令 |
| /root/Text 查找路径 |
| -maxdepth 1 设置搜索目录层级,1层 |
| -mtime 文件最后修改时间 |
| +3 3天前(或理解成从命令执行当前日期开始,当天不算,保留3个文件) |
| -amin 文件最后修改时间 |
| +10 时间超过10分钟的时间 |
| -type 文件类型 |
| f 指定类型。f是文件;d是目录;f普通文件;l符号连接; |
| c字符设备;b块设备;s套接字;p Fifo |
| -name 查询方式为查询文件名 |
| "log.*" 查找log开头后面为任意长度字符的文件(不明白可以找“正则表达式”教程看看) |
| -exec 固定写法 |
| -ok 固定写法, 和-exec一样功能,但是会提示 |
| rm -f 符合条件的执行删除并不提示 |
| {} 固定写法,会被替换find 找到的文件(夹). 注意左右有空格 |
| \; 固定写法,注意左有空格 |
六、为了自动运行,可以加入系统的定时任务
6.1 编译(默认用vi)
加入命令, 指定每天中午12点执行,删除90天前的文件(夹)(还可以理解成,保留90天的文件(夹):
* 12 * * * find . -mtime +90 -type f -name "*" -exec \rm -rf {} \;
说明:
第一个号表示时间中的 分钟, 取值范围:0-59
第二个号表示时间中的 小时, 取值范围:0-23
第三个号表示一个月中的第几天,取值范围:1-31
第四个号表示一年中的第几个月,取值范围:1-12
第五个*号表示一个星期中的第几天,以星期天开始依次的取值为0~7,0、7都表示星期天
6.2 查看执行列表(默认用vi)
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://blog.51cto.com/wutou/1932446
Linux命令大全搜索工具 v1.8.0.pdf
https://www.jianshu.com/p/b7ae88d0a01e
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
2021-01-15 yum您可以尝试添加 --skip-broken 选项来解决该问题 您可以尝试执行:rpm -Va --nofiles --nodigest 解决方案
2021-01-15 [转]百度云同步盘自动误删文件的恢复方法
2021-01-15 rpm依赖自动解决,yum批量安装,本地源
2021-01-15 git clone别人项目查看显示无权限Permission denied (publickey)