find和locate同为文本查找,主要区别在于:
find实时查找,速度难匹配精确 消耗资源
locate:依赖数据库,非实时精确查找,结果精确,查找速度快,模糊查找。
下面我们介绍下find的一些基本用法
find可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。还可以通过匹配符进行详细查找。
1.基本用法:
find [options] [查找位置\路径] [查找标准\条件][处理动作]
查找路径:省略则作为当前目录查找。
查找
条件:没有指定标准就查找指定路径下的所有文件。
处理动作:默认为显示动作
。print。
名称查找:
-name “文件名称”,支持使用globbing,文件名统配机制。
-iname:不区分字符大小写。
find /etc -name "passwd"根据名称查找passwd名字。
2)根据属主和属组查找。
-user UserName:属主查找。
-group GroupName:s属组查找。
3)根据UID和GID查找。
根据uid和gid的原因主要是防止用户被删除了还存在家目录,这样可以根据UID和GID查出。
find /tmp -uid
500
find /tmp -gid
500
4)查找没有属主的文件。
-nouser:查找没有属主的文件。
-nogroup:查找没有属组的文件。
find /tmp -nouser
find /tmp -nogroup
5)组合条件。
-a:与,同时满足。
-o:或,满足一个。
-not,!:非,取反的。
find /tmp -user hadoop -a -not -name "*.txt"=》意为查找用户为hadoop非.txt结尾的文件。
6)根据类型查找。
-type:
f:普通文件。
d:目录。
b:块设备。
c:字符设备。
l:符号链接。
p:命名管道。
s:套接字。
处理动作:
1
)-print:打印在标准输出上。(默认)
2
)ls:以长格式输出各文件信息。
3
)-exec COMMAND \;:对查找到的文件执行指定的命令。
4
)-ok COMMAND \;:交互式的-exec。
| xargs COMMAND(注意:find把查找到的所有文件一次性的传递给-exec所指定的命令)
头要炸了=。=!