这两天整理各种jenkins服务器,用到find命令来协助查找一些特定文件。
用到find的一些命令如下:
1 2 3 4 5 6 7 |
find /data/mydir -type f -name "*.java" -o -name "*.xml" -o -name "*.jar" jobs_home=/data/jenkins/jobs find $jobs_home -type f \( -name "*.war" -o -name "*.jar" \) -a -mtime +20 -a -size +5M | xargs rm -f find /home/admin -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件 find /home/admin -name *.txt -mtime -1 #查找/home/admin目录下修改时间在1天之内的文件名为.txt结尾的文件 |
其实在2010年时,我也简单写过一篇关于find的文章(转载+修改),在:Linux:find 按文件修改时间查找文件
也将其放在下面吧,方便自己查找:
find 按文件修改时间查找文件:atime, amin, ctime, cmin, mtime, mmin
---(+n)----------|----------(n)----------|----------(-n)---
(n+1)*24H前| (n+1)*24H~n*24H间 |n*24H内
-ctime -n 查找距现在 n*24H 内修改过的文件
-ctime n 查找距现在 n*24H 前, (n+1)*24H 内修改过的文件
-ctime +n 查找距现在 (n+1)*24H 前修改过的文件
[a|c|m]min [最后访问|最后状态修改|最后内容修改]分钟数(n*min)
[a|c|m]time [最后访问|最后状态修改|最后内容修改]天数(n*24H)
linux 文件的三种时间(以 find 为例):通过stat myfile命令也可查看到
atime 最后一次访问时间, 如 less, more 等, 但 chmod, chown, ls, stat 等不会修改些时间, 使用 ls -utl 可以按此时间顺序查看;
ctime 最后一次状态修改时间, 如 chmod, chown 等状态时间改变但修改时间不会改变, 使用 stat file 可以查看;
mtime 最后一次内容修改时间, 如 vi 保存后等, 修改时间发生改变的话, atime 和 ctime 也相应跟着发生改变.
注意: linux 里是不会记录文件的创建时间的, 除非这个文件自创建以来没有发生改变, 那么它的创建时间就是它的最后一次修改时间.
#ls -lt /home/admin # 按修改时间顺序查看
#ls -lut /home/admin # 按访问时间顺序查看
(如果想反序查看的话需要加一个选项 -r)
参考资料:
http://shawonline.blog.51cto.com/304978/199674