이전에는 find의 -mtime 매개변수의 진정한 의미를 이해하지 못했습니다.
쉘 스크립트를 작성하고 정기적으로 일부 파일을 삭제할 때 -mtime 매개변수를 자주 사용했기 때문에 자세히 살펴보고자 했습니다.
man find:
-mtime n
파일의 데이터가 n*24시간 전에 마지막으로 수정되었는지 반올림은 파일 수정 시간의 해석에 영향을 미칩니다.
-atime n
파일이 n*24시간 전에 마지막으로 액세스되었는지 검색하면
파일이 24시간 전에 마지막으로 액세스되었는지 파악합니다. 액세스하면 모든 분수 부분이 무시되므로 -atime +1과 일치하려면 파일에 지난 24시간 동안 수정된
액세스 권한이 있어야 하며
이 명령은 이런 방식으로 작동합니다. 각 파일이 마지막으로 수정된 이후의 시간을 24시간으로 나누고
나머지는 모두 삭제되기 때문입니다. 즉, mtime 0과 일치하려면 파일이
이전에 수정된 시간이 있어야 합니다. 24시간 전.
다음 파일 목록은 실험에 사용되었습니다
[oracle@goolen arch]$ ll -h
총 1.1G
-rw-r----- 1 oracle oinstall 40M 4월 29일 22:00 archive_1_53_844522225.arc
-rw-r------ 1 oracle oinstall 45M 4월 29일 22:29 archive_1_54_844522225.arc
-rw-r------ 1 oracle oinstall 38M 4월 30일 16:30 archive_1_55_844522225.arc
-rw-r------ 1 oracle oinstall 38M 4월 30일 16:35 archive_1_56_844522225.arc
-rw-r------ 1 oracle oinstall 42M 30 22:00 archive_1_57_844522225.arc
-rw-r----- 1 oracle oinstall 45M 4월 30일 22:36 archive_1_58_84452 2225 .arc
-rw-r----- 1 oracle oinstall 38M 5월 1일 14:00 archive_1_59_844522225.arc
-rw-r----- 1 oracle oinstall 38M 5월 1일 22:00 archive_1_60_844522225.arc
-rw-r----- 1 oracle oinstall 41M 5월 1일 22: 37 Archive_1_61_844522225.arc -rw-r ----- 1 Oracle Oinstall 41m 5 월 22:00 ar .arc
-rw-r----- 1 oracle oinstall 42M 5월 3일 06:00 archive_1_64_844522225.arc
- rw-r---- 1 oracle oinstall 40M 5월 3일 14:09 archive_1_65_844522225.arc
-rw-r----- 1 oracle oinstall 45M 5월 3일 22:39 archive_1_66_844522225.arc
-rw- r------ 1 oracle oinstall 39M 5월 4일 06:00 archive_1_67_844522225.arc
-rw-r------- 1 oracle oinstall 38M 5월 4일 17:00 archive_1_68_844522225.arc
-rw-r- ---- 1 oracle oinstall 45M 5월 5일 08:10 archive_1_69_844522225.arc
- rw-r----- 1 oracle oinstall 45M 5월 5일 10:28 archive_1_70_844522225.arc
-rw-r--- -- 1 oracle oinstall 6.7M 5월 5일 14:57 archive_1_71_844522225.arc
-rw -r----- 1 oracle oinstall 38M 5월 5일 22:00 archive_1_72_844522225.arc
-rw-r---- - 1 oracle oinstall 38M 5월 6일 08:28 archive_1_73_844522225.arc
-rw-r ----- 1 oracle oinstall 38M 5월 6일 14:00 archive_1_74_844522225.arc
-rw-r------ 1 oracle oinstall 39M 5월 6일 22:00 archive_1_75_844522225.arc
-rw-r-- --- 1 oracle oinstall 45M 5월 7일 08:29 archive_1_76_844522225.arc
-rw-r------ 1 oracle oinstall 38M 5월 7일 22:00 archive_1_77_844522225.arc
-rw-r---- - 1 oracle oinstall 38M 5월 8일 05:00 archive_1_78_844522225.arc
-rw-r------ 1 oracle oinstall 38M 5월 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 4월 29일 22:00 ./archive_1_53_844522225.arc
-rw-r------ 1 oracle oinstall 46589440 4월 29일 22:29 ./archive_1_54_844522225.arc
-rw-r----- 1 oracle oinstall 39376384 4월 30일 16:30 ./archive_1_55_844522225.arc
-rw-r------ 1 oracle oinstall 39756800 4월 30일 16:35 ./archive_1_56_844522225.arc
-rw-r---- - 1 oracle oinstall 43597312 4월 30일 22:00 ./archive_1_57_844522225.arc
-rw-r------ 1 oracle oinstall 46589440 4월 30일 22:36 ./archive_1_58_844522225.arc
-rw-r- - --- 1 oracle oinstall 39395328 5월 1일 14:00 ./archive_1_59_844522225.arc
-rw-r------ 1 oracle oinstall 39623168 5월 1일 22:00 ./archive_1_60_844522225.arc
-rw-r ----- 1 oracle oinstall 42701824 5월 1일 22:37 ./archive_1_61_844522225.arc
-rw-r----- 1 oracle oinstall 42967040 5월 2일 22:00 ./archive_1_62_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 5월 2일 22:38 ./archive_1_63_844522225.arc
-rw-r----- 1 oracle oinstall 43959808 5월 3 06:00 ./archive_1_64_844522225.arc
-rw-r------ 1 oracle oinstall 41638400 5월 3 14:09 ./archive_1_65_844522225. arc
-rw-r----- 1 oracle oinstall 46589440 5월 3 22:39 ./archive_1_66_844522225.arc
-rw-r---- 1 oracle oinstall 39922176 5월 4 06:00 ./ archive_1_67_844522225.arc
-rw-r----- 1 oracle oinstall 39352832 5월 4 17:00 ./archive_1_68_844522225.arc
-rw-r----- 1 oracle oinstall 46589440 5월 5 08:10 ./archive_1_69_844522225.arc
-rw-r----- 1 oracle oinstall 46373888 5월 5 10:28 ./archive_1_70_844522225.arc
-rw-r----- 1 oracle oinstall 7001600 5월 5 14 :57 ./archive_1_71_844522225.arc
-rw-r----- 1 oracle oinstall 39364608 5월 5 22:00 ./archive_1_72_844522225.arc
-rw-r----- 1 oracle oinstall 39477248 5월 6 08:28 ./archive_1_73_844522225.arc
-rw-r---- 1 oracle oinstall 39361024 5월 6 14:00 ./archive_1_74_844522225.arc
+++命令返回的文件列表为archive_1_53_844522225.arc - archive_1_74_844522225.arc
从时间上来看,就是截至到5月6号 14点>5月6号 还有一个文件晚上2 2살짜리, 판매가 시작되었습니다
-rw-r----- 1 oracle oinstall 39M 5월 6일 22:00 archive_1_75_844522225.arc
按我以的前理解(错误的),-mtime +1 ,输出的应该是57号之前月的所有文件,但是这里却没有输流6号晚上22点生成成的archive_1_75_844522225.arc这个文件
정확한 내용:
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时) 地外文件
这也能解释了, 为什么6号22点生成这个文件为什么没有输出来
这里-mtime +1 为什么是4 8소수 이상, 而不是24소수 이상呢,因为n只能是整数,比1大的下一个整数是2,所以是48small时以外的
下face来看 -mtime 1 的输流结果:
[oracle@goolenarch] $ 찾기 ./* -이름 "*.arc" -mtime 1 -exec ls -l {} ;
-rw-r----- 1 oracle oinstall 40737280 5월 6일 22:00 ./archive_1_75_844522225.arc
-rw-r------ 1 oracle oinstall 46589440 5월 7일 08:29 ./archive_1_76_844522225 .arc
확장된 archive_1_75_844522225.arc 와7号8点29생성archive_1_76_844522225.arc 这两个文件
解释:
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件
下面来看 -mtime 0 的输流结果:
[oracle@goolen 아치 ]$ 찾기 ./* -name "*.arc" -mtime 0 -exec ls -l {} ;
-rw-r----- 1 oracle oinstall 39303680 5월 7일 22:00 ./archive_1_77_844522225.arc
-rw-r------ 1 oracle oinstall 39483392 5월 8일 05:00 ./archive_1_78_844522225 .arc
-rw-r----- 1 oracle oinstall 39208448 5월 8일 09:00 ./archive_1_79_844522225.arc
解释:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件
下面看-mtime -1 的输流结果:
[oracle@goolenarch]$ find ./* - 이름 "*.arc" -mtime -1 -exec ls -l {} ;
-rw-r----- 1 oracle oinstall 39303680 5월 7일 22:00 ./archive_1_77_844522225.arc
-rw-r------ 1 oracle oinstall 39483392 5월 8일 05:00 ./archive_1_78_844522225 .arc
-rw-r----- 1 oracle oinstall 39208448 5월 8일 09:00 ./archive_1_79_844522225.arc
解释:
-mtime -1 表示文修改时间小于1天的文件,即距离当前时间1天(24小时) 内的文件