find中的mtime,工作中遇(一直在改变系列5)

我会把《一直在改变系列》一直保持下去,直到我离职,并成功变身。

今天在工作的时候要写一句脚本,想把7天以外的文件删除。

使用 find -name "[0-9][0-9][0-9][0-9]" -type d -mtime +7 | rm -rf {} /

类似于上面那样,却发现,+7的作用没有体现,7天前的文件没有删除。网上查了后,被误导用24小时去计算,发现也不对,然后自己琢磨实验了下:

发现 -7代表现在-第7天
  7代表第7天-第8天

  +7代表第8天后

当然时间的确是用24小时去算的,因为要从现在的时间开始向后推。

网上有人分享出来的知识终于与我想的一样了:

有关find -mtime这个参数的使用确实是我以前犯过错误。今天又有人问到我这个问题,我觉得有必要把这个问题在这里记录下来。
mtime参数的理解应该如下:
-mtime n 按照文件的更改时间来找文件,n为整数。
n表示文件更改时间距离为n天, -n表示文件更改时间距离在n天以内,+n表示文件更改时间距离在n天以前。
例如:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件

为什么-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间48小时之外的文件,而不是24小时之外的呢?
因为n值只能是整数,即比1大的最近的整数是2,所有-mtime+1不是比当前时间大于1天(24小时),而是比当前时间大于2天(48小时)。
 
 
其他的atime ctime 也是一样的道理!

posted on   每当变幻时  阅读(524)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2012年8月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示