Find命令总结实时精确支持众多查找标准遍历指定目录中的所有文件完成查找,速度相对慢; find 查找路径 查找标准 查找到以后的处理运作查找路径:默认为当前目录查找标准:默认为指定路径下的所有文件处理运作:默认为显示
匹配标准-name "FILENAME":对文件名作精确匹配文件名通配:*:任意长度的任意字符?[]-iname "FILENAME": 文件名匹配时不区分大小写
实例:find ./ -name "*.conf"find ./ -iname "MyC.c" 忽略大小写!find . -perm 777
+++++++++++++++++++++++++++++++++++++++++++++++-user USERNAME: 根据属主查找-group GROUPNAME: 根据属组查找 -uid UID: 根据UID查找-gid GID: 根据GID查找 -nouser:查找没有属主的文件-nogroup: 查找没有属组的文件
实例:1、查找/var目录下属主为root并且属组为mail的所有文件;find /var -user root -group mail
2、查找/usr目录下不属于root,bin,或student的文件;find /usr -not -user root -a -not -user bin -a -not -user studentfind /usr -not ( -user root -o -user bin -o -user student )
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-typef: 普通文件d: 目录c:字符设备b:块设备l:软连接文件p:管道文件s:套节字
实例:find /etc -type ffind /etc -type dfind ./ ! -type d #在当前目录下查找除目录以外的所有类型的文件
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-size [+|-]表示文件大小,+表示大于某个数,-表示小于某个数,c表示单位是字节,你可以将c换成k,M,G.
实例:find ./ -size 0 -exec rm {} ;find ./ -size 0 | xargs rm -ffind . -size +1000000c #在当前目录下查找文件长度大于1 M字节的文件find /home/apache -size 100c #在/home/apache目录下查找文件长度恰好为100字节的文件find . -size +10 #在当前目录下查找长度超过10块的文件(一块等于512字节)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++文件状态判断 -mtime: 指定时间文件内容被修改过 -ctime: 指定时间文件权限被修改过 -atime: 指定时间文件被读取过
1、找出3天“以前”被修改过的文档find /var/log/ -mtime +3 -type f -print
2、找出3天“内”被修改过的文档find /var/log/ -mtime -3 -type f -print
3、找出第3天被修改过的文档.find /var/log/ -mtime 3 -type f -print或这样写:find /var/log/ -mtime +2 -mtime -4 -type f -print
注:访问过用amin,修改过用mmin,文件状态改变过用cmin精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime
find /logs -type f -mtime +5 -exec rm {} ; #在/logs目录中查找更改时间在5日以前的文件并删除它们find / -mtime -5 -print #在系统根目录下查找更改时间在5日以内的文件
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-mount:在查找文件时不跨越文件系统mount点,这样限制在本文件系统!这个用的不多就不举实例了!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-prunefind /apps -path "/apps/bin" -prune -o -print #在/apps目录下查找文件,但不希望在/apps/bin目录下查找。在用这条命令时,要么各目录最好用绝对路径,要么前后对应,如:find test/ -path "./test/a" -prune -o -print 这种方式是不对的.
-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。-maxdepth:find . -maxdepth 1 -name fred #在当前目录下查找find . -maxdepth 2 -name fred #在当前目录的下一级目录查找find -mindepth 3 -maxdepth 5 -name passwd[root@fb13 /]# find . -maxdepth 3 -name test./b/test./usr/bin/test./a/test
find /project -maxdepth 2 ( -path "/project/exapi/log" -o -path "/project/exapi/backup" ) -prune -o -print |grep "/project/exapi/" |xargs tar zcf /backup/exapi_`date +%F`.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++使用混合查找方式: -a -o -notfind /tmp -size +10000000c -a -mtime +2find / -user andy -o -user jackfind /tmp -not -user zjqiu
Linux运维利器--Grep命令及正则表达式Linux shell 常用命令记录相关资讯 find命令
- Linux基础知识:find命令的使用 (今 19:56)
- Linux下的文件查找命令——find (05月28日)
- Linux命令之find命令详解 (12/22/2015 13:20:46)
| - find命令基本使用一览 (07月18日)
- Linux的find命令实例详解和mtime (05月21日)
- Linux find命令的用法实践 (08/16/2015 11:10:03)
|
本文评论 查看全部评论 (0)