locate:非实时,模糊查找,查找是根据全系统文件数据库进行的 用的不多 最大特点是速度快
updatedb手动生成文件数据库
find:实时查找,精确查找,遍历指定目录中的所有文件完成查找,速度慢支持众多查找标准
find:指定查找路径,查找标准,查找到以后的处理动作
查找路径:默认为当前目录(pwd)
查找标准:默认为指定路径下的所有文件
处理运作:默认为显示到屏幕上
匹配标准:
find /etc -name ‘passwd’:在/etc目录下对文件名作精确匹配、
文件名通配:
*:任意长度的任意字符
?:
[]
-iname 'filename':文件名匹配时不区分大小写
-regex PATTERN:基于正则表达式进行文件名匹配
-user USERNAME:根据属主查找
-group GROUPNAME:根据属组查找
find / -user tom#查找文件的主人是tom的
find / -group tom#查找所属组为tom的
-uid UID:根据uid查找,用户被删除此前文件属主只存在UID
-gid GID:根据gid查找
-nouser :查找没有属主的文件,将没有属主的文件权限划分给root,防止木马文件
-nogroup:查找没有属组的文件
-type 根据文件类型来查找的
find / -type f #查找系统中所有的文件
find / -type d#查找系统中所有的目录
find / -type l#查找系统中所有的链接文件
find / -type f –perm 700#组合应用
-size [+|-](+大约、-小于,不带则为精确值)单位(默认单位字节)
#k(kb)
#M
#G
find /etc -size -1k -ls
find / -type f –size 0 –exec rm –f {} ¥; 把系统中所有大小为0的文件都删除
组合条件:
-a 与 默认是与
-o 或
-not 非
find /etc -user root -a -size -1k
find /etc -not -user root
find /etc -not \( -user tom -o -user tom1\)
-perm根据权限查找
find / -perm 700#查找/目录下权限为700的文件或目录
-perm mode:精确匹配
-perm /mode:任意一位匹配即满足条件
-perm -mode:文件权限能完全包含此mode时才能符合条件
find动作:
-print:默认显示
-ls:类似ls -l的形式显示每一个文件的详细
-ok COMMAND {}\;:每一次操作都需要用户确认
-exec COMMAND{}\;:
find /etc -perm 644 -exec chmod o-x {}\;
locate命令和slocate命令都用来查找文件或目录。
locate命令其实是find
-name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库
locate/slocate(选项)
-d<目录>或--database=<目录>:指定数据库所在的目录;
-u:更新slocate数据库;
--help:显示帮助;
--version:显示版本信息。