以前一直没有弄明白find的 -mtime参数的真正含义
我在写shell脚本的时候,定时删除一些文件的时候,也经常用得到-mtime这个参数,所以打算好好看看,把它弄明白一下
man find里的解释:
-mtime n
file’s data was last modified n*24 hours ago. see the comments for -atime to understand how
rounding affects the interpretation of file modification times.
-atime n
file was last accessed n*24 hours ago. when find figures out how many 24-hour periods ago the
file was last accessed, any fractional part is ignored, so to match -atime +1, a file has to have
been accessed at least two days ago.
find $home -mtime 0
search for files in your home directory which have been modified in the last twenty-four hours. this
command works this way because the time since each file was last modified is divided by 24 hours and any
remainder is discarded. that means that to match -mtime 0, a file will have to have a modification in
the past which is less than 24 hours ago.
以下的文件列表用来做实验
[oracle@goolen arch]$ ll -h
total 1.1g
-rw-r----- 1 oracle oinstall 40m apr 29 22:00 archive_1_53_844522225.arc
-rw-r----- 1 oracle oinstall 45m apr 29 22:29 archive_1_54_844522225.arc
-rw-r----- 1 oracle oinstall 38m apr 30 16:30 archive_1_55_844522225.arc
-rw-r----- 1 oracle oinstall 38m apr 30 16:35 archive_1_56_844522225.arc
-rw-r----- 1 oracle oinstall 42m apr 30 22:00 archive_1_57_844522225.arc
-rw-r----- 1 oracle oinstall 45m apr 30 22:36 archive_1_58_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 1 14:00 archive_1_59_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 1 22:00 archive_1_60_844522225.arc
-rw-r----- 1 oracle oinstall 41m may 1 22:37 archive_1_61_844522225.arc
-rw-r----- 1 oracle oinstall 41m may 2 22:00 archive_1_62_844522225.arc
-rw-r----- 1 oracle oinstall 45m may 2 22:38 archive_1_63_844522225.arc
-rw-r----- 1 oracle oinstall 42m may 3 06:00 archive_1_64_844522225.arc
-rw-r----- 1 oracle oinstall 40m may 3 14:09 archive_1_65_844522225.arc
-rw-r----- 1 oracle oinstall 45m may 3 22:39 archive_1_66_844522225.arc
-rw-r----- 1 oracle oinstall 39m may 4 06:00 archive_1_67_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 4 17:00 archive_1_68_844522225.arc
-rw-r----- 1 oracle oinstall 45m may 5 08:10 archive_1_69_844522225.arc
-rw-r----- 1 oracle oinstall 45m may 5 10:28 archive_1_70_844522225.arc
-rw-r----- 1 oracle oinstall 6.7m may 5 14:57 archive_1_71_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 5 22:00 archive_1_72_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 6 08:28 archive_1_73_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 6 14:00 archive_1_74_844522225.arc
-rw-r----- 1 oracle oinstall 39m may 6 22:00 archive_1_75_844522225.arc
-rw-r----- 1 oracle oinstall 45m may 7 08:29 archive_1_76_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 7 22:00 archive_1_77_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 8 05:00 archive_1_78_844522225.arc
-rw-r----- 1 oracle oinstall 38m may 8 09:00 archive_1_79_844522225.arc
[oracle@goolen arch]$ date
thu may 8 16:29:09 cst 2014
++现在是 5月8号 16:30
+++我们先来看一下 -mtime +1 这个参数的输出结果:
[oracle@goolen arch]$ find ./* -name "*.arc" -mtime +1 -exec ls -l {} \;
-rw-r----- 1 oracle oinstall 41009664 apr 29 22:00 ./archive_1_53_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 apr 29 22:29 ./archive_1_54_844522225.arc
-rw-r----- 1 oracle oinstall 39376384 apr 30 16:30 ./archive_1_55_844522225.arc
-rw-r----- 1 oracle oinstall 39756800 apr 30 16:35 ./archive_1_56_844522225.arc
-rw-r----- 1 oracle oinstall 43597312 apr 30 22:00 ./archive_1_57_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 apr 30 22:36 ./archive_1_58_844522225.arc
-rw-r----- 1 oracle oinstall 39395328 may 1 14:00 ./archive_1_59_844522225.arc
-rw-r----- 1 oracle oinstall 39623168 may 1 22:00 ./archive_1_60_844522225.arc
-rw-r----- 1 oracle oinstall 42701824 may 1 22:37 ./archive_1_61_844522225.arc
-rw-r----- 1 oracle oinstall 42967040 may 2 22:00 ./archive_1_62_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 may 2 22:38 ./archive_1_63_844522225.arc
-rw-r----- 1 oracle oinstall 43959808 may 3 06:00 ./archive_1_64_844522225.arc
-rw-r----- 1 oracle oinstall 41638400 may 3 14:09 ./archive_1_65_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 may 3 22:39 ./archive_1_66_844522225.arc
-rw-r----- 1 oracle oinstall 39922176 may 4 06:00 ./archive_1_67_844522225.arc
-rw-r----- 1 oracle oinstall 39352832 may 4 17:00 ./archive_1_68_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 may 5 08:10 ./archive_1_69_844522225.arc
-rw-r----- 1 oracle oinstall 46373888 may 5 10:28 ./archive_1_70_844522225.arc
-rw-r----- 1 oracle oinstall 7001600 may 5 14:57 ./archive_1_71_844522225.arc
-rw-r----- 1 oracle oinstall 39364608 may 5 22:00 ./archive_1_72_844522225.arc
-rw-r----- 1 oracle oinstall 39477248 may 6 08:28 ./archive_1_73_844522225.arc
-rw-r----- 1 oracle oinstall 39361024 may 6 14:00 ./archive_1_74_844522225.arc
+++命令返回的文件列表为 archive_1_53_844522225.arc - archive_1_74_844522225.arc
从时间上来看,就是截至到5月6号 14点的
5月6号 还有一个文件是晚上22点生成的,输出结果里没有
-rw-r----- 1 oracle oinstall 39m may 6 22:00 archive_1_75_844522225.arc
按我以前的理解(错误的),-mtime +1 ,输出的应该是5月7号之前的所有文件,但是这里却没有输出6号晚上22点生成的archive_1_75_844522225.arc这个文件
正确的解释:
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
这也能解释了,为什么6号22点生成的这个文件为什么没有输出出来
这里-mtime +1 为什么是48小时以外,而不是24小时以外呢,因为n只能是整数,比1大的下一个整数是2,所以是48小时以外的
下面来看 -mtime 1的输出结果:
[oracle@goolen arch]$ find ./* -name "*.arc" -mtime 1 -exec ls -l {} \;
-rw-r----- 1 oracle oinstall 40737280 may 6 22:00 ./archive_1_75_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 may 7 08:29 ./archive_1_76_844522225.arc
结果输出为6号22点生成的archive_1_75_844522225.arc 和7号8点29生成的archive_1_76_844522225.arc 这两个文件
解释:
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件
下面来看 -mtime 0 的输出结果:
[oracle@goolen arch]$ find ./* -name "*.arc" -mtime 0 -exec ls -l {} \;
-rw-r----- 1 oracle oinstall 39303680 may 7 22:00 ./archive_1_77_844522225.arc
-rw-r----- 1 oracle oinstall 39483392 may 8 05:00 ./archive_1_78_844522225.arc
-rw-r----- 1 oracle oinstall 39208448 may 8 09:00 ./archive_1_79_844522225.arc
解释:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件
下面看-mtime -1 的输出结果:
[oracle@goolen arch]$ find ./* -name "*.arc" -mtime -1 -exec ls -l {} \;
-rw-r----- 1 oracle oinstall 39303680 may 7 22:00 ./archive_1_77_844522225.arc
-rw-r----- 1 oracle oinstall 39483392 may 8 05:00 ./archive_1_78_844522225.arc
-rw-r----- 1 oracle oinstall 39208448 may 8 09:00 ./archive_1_79_844522225.arc
解释:
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
0
0
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题围绕 Archive of Our Own(AO3)官网入口展开,系统整理 AO3 最新可用官网地址、网页版访问方式、正确打开链接的方法,并详细讲解 AO3 中文界面设置、阅读语言切换及基础使用流程,帮助用户稳定访问 AO3 官网,高效完成中文阅读与作品浏览。
45
2026.02.02
本专题聚合极兔快递、京东快递、中通快递、圆通快递、韵达快递等主流物流平台的单号查询与运单追踪内容,重点解决单号查询、手机号查物流、官网入口直达、包裹进度实时追踪等高频问题,帮助用户快速获取最新物流状态,提升查件效率与使用体验。
8
2026.02.02
本专题系统讲解 Golang 在 WebAssembly(WASM)开发中的实践方法,涵盖 WASM 基础原理、Go 编译到 WASM 的流程、与 JavaScript 的交互方式、性能与体积优化,以及典型应用场景(如前端计算、跨平台模块)。帮助开发者掌握 Go 在新一代 Web 技术栈中的应用能力。
4
2026.02.02
本专题聚焦 PHP Swoole 扩展在高性能服务端开发中的应用,系统讲解协程模型、异步IO、TCP/HTTP/WebSocket服务器、进程与任务管理、常驻内存架构设计。通过实战案例,帮助开发者掌握 使用 PHP 构建高并发、低延迟服务端应用的工程化能力。
3
2026.02.02
本专题系统讲解 Java 通过 JNI 调用 C/C++ 本地代码的核心机制,涵盖 JNI 基本原理、数据类型映射、内存管理、异常处理、性能优化策略以及典型应用场景(如高性能计算、底层库封装)。通过实战示例,帮助开发者掌握 Java 与本地代码混合开发的完整流程。
3
2026.02.02
热门下载
相关下载
精品课程





