locate
非实时,模糊匹配,根据文件系统的数据库进行查找;
updatedb:生动生成文件数据库,这个数据库会在天天固定的时间自动生成,也能够用此命令手动生成。
/var/lib/mlocate/mlocate.db
locate命令实际上是find -name的另外一种写法
whereis
whereis命令只能用于程序名的搜索,并且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。若是省略参数,则返回全部信息。
whereis [ -sbmu ] [ -SBM dir ... -f ] name...
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。
find
实时、精确、支持众多查找标准
find 查找路径 查找标准 查找后进行的处理动做
查找路径:默认为当前目录
查找标准:默认为指定路径下的全部文件
处理动做:默认为显示
查找标准
-name “FILENAME“:对文件名进行精确匹配
-iname ”FILENAME“:对文件名进行匹配,不区分大小写
-regex PATTERN:基于正则表达式进行文件查找
-user USERNAME:基于文件的属主进行查找
-group GROUPNAME:
基于文件的属组进行查找
-uid UID:基于文件的UID进行查找
-gid GID:基于文件的GID进行查找
注意:删除一个用户,属于这个用户属主文件将只保留UID号
-nouser:没有属主
-nogroup:没有属组
-type:指定文件类型
-size:指定文件大小
[=|-]#10k
[=|-]#10m
[=|-]#10g
find -size 10k
会匹配9k~10k之间的内容
对文件时间的查找
单位为天
-atime
-mtime
-ctime
单位为分钟
-amin
-mmin
-cmin
对文件权限进行查找
-perm MOOD精确匹配
-perm -MOOD文件权限彻底包含MOOD才匹配
-perm /MOOD任意一位匹配便可
组合查找
-a:默认,可省
-o:或者
-not:
find /tmp -not -user user1 -o -type d等价于find /tmp -not \(-user user1 -a -type d\)
动做
-print:显示(默认)
-print0:不换行显示
-ls:相似于ls -l
-ok
COMMAND {} \;每一次操做都须要用户确认
例子:find -atime +5 -ok mv {} {}.old \;
-exec
COMMAND {} \;不须要用户确认
例子:find -atime +2 -exec mv {} {}.old \;
{}文件名占位符
-path
PATH :指定路径
-prune:删除
除去某一路径
- PATH EXPREESION]-a PATH EXPREESION] -a [PATH EXPREESION] -o [PATH EXPREESION]
find /usr/sam -path "/usr/sam/dir1" -prune -o -printfind [[
这个表达式组合特例能够用伪码写为
if -path "/usr/sam";then -pruneelse -printfi