find /var/log/ -maxdepth 1 -type f
/var/log/anaconda.ifcfg.log
/var/log/dmesg
/var/log/dmesg.old
2、按类型查找(-type)find /data -type f
f:普通文件 d:目录 l:符号链接 s:socket b:区块文件
3、按文件名查找(-name)find /data -type f –name “*.log”
4、按修改时间查找(-mtime)find / -type f –name “*.log” –mtime +4 表示查找四天前的
时间原理图:
在时间属性当中,除了按照修改时间mtime之外,还可以按照访问时间atime和属性的改变时间ctime来查找,只不过不太常用。
5、按权限查找(-perm)
[root@backup tmp]# find /tmp/ -type f -perm 644
/tmp/rsyncd.conf
/tmp/nn
/tmp/kk
[root@backup tmp]# ls -l
total 4
-rw-r--r-- 1 root root 0 May 18 21:01 kk
-rw-r--r-- 1 root root 0 May 18 21:02 nn
-rw-r--r-- 1 root root 466 May 17 05:32 rsyncd.conf
[root@backup tmp]# ls -l kk|awk ‘{print $1}‘|tr "\-rwx" "0421" –有特殊意义,所以需要转义
0420400400
6、按用户查找(-user)find / -user root
7、按大小查找(-size)
find / -type f –size +100M 查找大于100M的文件
-100M 小于100M
100M 等于100M
+100M 大于100M 其它的依此类推
8、按照inode号查找(-inum)find / -type f –inum xxxx
9、! :取反find . -maxdepth 1 -type d ! -name "."
10、-a:并且and
find /tmp/ -type f -name "k*" -a -name "*k"
/tmp/kk
11、-o:或者or
find /tmp/ -type f -name "k*" -o -name "*n"
/tmp/nn
/tmp/kk
使用案例
1、find . -perm 700 |xargs chmod 777
查找出当前目录(及子目录)下所有权限为700的文件,并把其权限重设为777。
2、find . -type f |xargs ls -l
查找出文件并查看其详细信息。
3、find . -maxdepth 1 -type d ! -name "."
查找当前目录下的所有目录,排除”.”当前目录,且查找深度为1
4、find oldboy/ -type f -name "*.sh"|xargs sed -i ‘s#Ricky#ricky#g‘
5、查找删除
find /data -type f -name "*.txt" |xargs rm –f
或find /data -type f -name "test" -exec rm {} \;
{}:find查找到的内容
; 命令结束【\反斜杠是用来转义】
原文地址:http://blog.51cto.com/13691477/2119027