1.locate:非实时,模糊查找,查找是根据全系统文件数据库进行的,优势速度快
find:实时,精确,支持众多查找标准,遍历指定目录中的所有文件完成查找,速度慢
#updatedb 手动生成文件数据库
2.find命令的使用方法:
(1)find命令的格式:find 查找路径 查找标准 查找到以后的处理运作
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
处理运作:默认为显示
(2)find命令的匹配标准:
-name 'FILENAME':对文件名作精确匹配 支持文件名通配: *?[]
-inname 'FILENAME':文件名匹配时不区分大小写
-regex PATTERN:基于正则表达式进行文件名匹配
-user USERNAME:根据属主查找
-group GROUPNAME:根据属组查找
-uid UID:根据UID查找
-gid GID:根据GID查找
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-type:根据文件类型来查找文件
文件类型的分类及表示:
-(f):普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:符号链接文件(symbolic link file)软连接文件
p:命令管道(pipe)
s:套接字文件(socket)
-size:根据文件大小来查找文件(默认查找为字节 B)
[+|-]#k [+|-]#m [+|-]#G 1k:0.nk的都算1k 10k:9.nk-10k都算10k
根据时间查找 [+|-]#
-mtime:modify time
-ctime:change time
-atime:
mtime和ctime的区别在于,只有修改了文件的内容,才会更新文件的mtime,而对文件更名,修改文件的属主等操作,只会更新ctime。
atime, 这个就是每次查看文件内容的时候会更新。比如cat操作,而ls操作是不会更新的
-mmin:
-cmin:
-amin:
-perm MODE :根据权限查找(例如755)查找的文件权限刚好为755的才会被列出
-MODE:文件权限能完全包含此MODE的时候 才能显示
我们查找644, 655 666 755 744...都会被列出
/MODE:我们要查找的权限为644,查找的结果只要包括按权限关系分别对应的6or4or4都会被列出
eg:我们要查找的权限为644,举一个符合-MODE查找的例子:600 040 004...都会符合
组合条件查找:-a与 -o或 -not非 (未指明查找组合关系时,默认为与关系)
例:/tmp目录下,不是目录,并且还不是套接字类型的文件
find /tmp -not -type d -a -not -type s
find /tmp -not \(-type d -o -type s\)
(3)find命令的运作
-print:显示 (默认的运作为显示出来)
-ls:类似ls -l的形式显示每一个文件的额详细信息
-ok COMMOND {} \;每一次操作都需要用户的确认
-exec COMMOND {} \;每一次操作都不需要用户的确认
eg:-ok chmod +x {} \; {}2表示这次查找到的文件