在Linux操作系统中,每个文件都有很多的时间参数,其中有三个比较主要,分别是ctime,atime,mtime
atime 最后一次访问时间, 如 ls, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;
ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;
mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变
-ctime -n 查找距现在 n*24H 内修改过的文件
-ctime n 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件
-ctime +n 查找距现在 (n+1)*24H 前修改过的文件
常用范例:
-- 查找两天前修改过的文件:
find . -type f -mtime -2
-- 查找3天内修改过的文件:
find -ctime -3
-- 删除/data/backup目录下状态修改时间超过6天的文件:
find /data/backup -ctime +6 -exec rm -f {} \;
-- 删除/data/backup目录下空的文件夹,同时输出正确和错误信息到空:
find /data/backup -type d -empty -exec rmdir {} \; >/dev/null 2>&1
-- 查找超过6天且是空文件的find命令:
find ./ -type d -empty -ctime +6
-- 查找/home/admin目录下修改时间在1天之内的文件
find /home/admin -mtime -1
-- 查找/home/admin目录下修改时间在1天之内的文件名为.txt结尾的文件
find /home/admin -name *.txt -mtime -1