find 常见用法
1、find
find [path] -option [-print] [ -exec -ok command] {} \;
search for files in a directory hierarchy
① -print 将查找到的文件输出到标准输出,一个文件一行
② -delete删除找出的文件
③ -exec command {} \; 将查到的文件执行command操作,{}和\;之间有空格,"\;"是固定的结束符;{}会被文件替换掉
④ -ok和-exec相同,不过在操作前要询用户
2、option
① -type b/d/c/p/l/f #查是块设备/目录/字符设备/管道/符号链接/普通文件
② -perm #按执行权限来查找
③ -depth #使查找在进入子目录前先行查找完本目录
④ -follow #如果遇到符号链接文件,就跟踪链接所指的文件
实例:
① $find . -type d -print打印目录结构
② $find . ! -type d -print 打印非目录文件
③ find /usr/include -name '*.h' -exec grep AF_INEF6 {} \; (因grep无法递归搜索子目录,故可以和find相结合使用。 在/usr/include 所有子目录中的.h文件中找字串AF_INEF6)
④ $find /etc -name "passwd*" -exec grep "cnscn" {} \; 看是否存在cnscn用户
⑤ $find . -name "yao*" | xargs file 执行命令显示文件类型
⑥ $find -name ap* -o -name may* 查找以ap或may开头的文件
⑦ $find /home -mtime -2 在/home下查最近两天内改动过的文件
⑧ $find /home -mtime +2 在/home下查最近两天前改动过的文件
⑨ $find /home -mmin +60 在/home下查60分钟前改动过的文件
⑩ $find /home -amin +30 查最近30分钟前被存取过的文件
11 $find /home -mmin +60 在/home下查60分钟前改动过的文件
12 $find /home -amin +30 查最近30分钟前被存取过的文件
13 $find /home -uid +501 列出/home下用户的uid大于501的文件或目录
14 $find /home -nouser 列出/home内不属于本地用户的文件或目录
15 $find /home -nogroup 列出/home内不属于本地组的文件或目录
16 $find /hom -name t.txt -maxdepth 4 列出/home内tmp.txt深度最多为3层
17 $find /home -name tmp.txt -mindepth 3 从第2层开始查
18 $find /home -empty 查找大小为0的文件或空目录
19 find /tmp/ -ctime +7 -delete 删除/tmp目录下一周以前创建的文件
20 find ./ -perm 755 -print
3、示例
1)基本用法
find / -name 文件名
与大小相关:
-size n[bkMG] 大小为n(b为bit,c:byte, k:KB,M:MB,G:GB)
find / -size 1500c (查找1,500字节大小的文件,c表示字节)
find / -size +1500c (查找大于1,500字节大小的文件,+表示大于)
find / -size -1500c (查找小于1,500字节大小的文件,-表示小于)
与时间相关:
find / -amin n 最后n分钟
find / -atime n 最后n天
find / -cmin n 最后n分钟改变状态
find / -ctime n 最后n天改变状态
find / -newer file 比file所指的文件还要新的文件
2)高级用法1
find / -empty 空白文件、空白文件夹、没有子目录的文件夹
find / -false 查找系统中总是错误的文件
find / -fstype type 找存在于指定文件系统的文件,如type为ext2
find / -gid n 组id为n的文件
find / -group gname 组名为gname的文件
find / -depth n 在某层指定目录中优先查找文件内容
find / -maxdepth levels 在某个层次目录中按递减方式查找
3)高级查找2
-and 条件与 -or 条件或
4)其他
-user name 所有者用户名称是name的文件
-group name 所有者用户组群名称是name的文件
参考
【1】 总结的不错
http://techbbs.zol.com.cn/1/85_883.html
http://bbs.linuxtone.org/thread-1425-1-1.html
http://www.flatws.cn/article/program/shell/2011-06-13/30184.html
【2】 更多关于find的介绍
http://bbs.linuxtone.org/thread-1696-1-1.html
http://linux.die.net/man/1/find
【3】 必看好文