locate
非实时,模糊匹配,根据文件系统的数据库进行查找;
updatedb:生动生成文件数据库,这个数据库会在每天固定的时间自动生成,也可以用此命令手动生成。
/var/lib/mlocate/mlocate.db
yum install -y mlocate
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:删除
除去某一路径
find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [
PATH EXPREESION]-a[
PATH EXPREESION] -a [PATH EXPREESION] -o [PATH EXPREESION]
这个表达式组合特例可以用伪码写为
if -path "/usr/sam";then
-prune
else
fi