locate:
依赖事先构建好的索引库
系统自动实现(周期性任务)
手动更新数据库
工作特性:
模糊查找
非实时查找
查找速度快
locate [OPTION] PATTERN
-b: 只匹配路径中的基名
-c: 统计处共有多少个符合条件的文件
-r:正则表达式
find:
实时查找工具,遍历指定路径下文件系统层级结构完成文件查找
工作特性:
速度慢
精确查找
实时查找
find [OPTION] [查找路径] [查找条件] [处理动作]
根据文件名查找:
-name "pattern"
-iname "pattern"
通配符模式
根据属主属组查找:
-user
-group
-uid
-gid
-nouser
-nogroup
根据文件类型查找:
-type TYPE:
f: 普通文件
d: 目录
l: 软连接文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
s: 套接字文件
组合:
-a: 与
-o: 或
!,-not: 非
根据文件大小查找:
-size [+|-]#单位(k,M,G)
#单位:(#-1,#]
-#单位: [0,#-1]
+#单位:(#,oo)
根据时间查找:
以“天”为单位:
-atime [+|-]#
#: [#,#-1)
-#: (#,0]
+#: (oo,#-1]
-mtine
-ctime
以“分钟”为单位:
-amin
-mmin
-cmin
根据权限查找:
-perm [/|-]mode
mode: 精确匹配
/mode: 任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足
-mode: 每一类用户的权限中每一位同时符合条件既满足
处理动作:
-print: 输出至标准输出,默认
-ls
-delete
-fls /PATH/TO/FILE:把查找到的所有文件的长格式信息保存至指定文件
-exec COMMAND {} \;
find ./ -perm /002 -exec mv {} {}.txt \;
事例:
查找/etc/目录下所有用户都没有写权限的文件
find /etc -not -perm /222 -type f -ls
查找/etc/目录下大于1M且类型为普通文件的所有文件
find /etc -size +1M -type f -exec ls -lh {} \;
查找当前系统上没有属主或属组,且最近一周内曾被访问过的文件或目录
find / \(-nouser -o -nogroup\) -atime -7 -ls
查找/etc/目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录
find /etc -mtime -7 -a -not -user root -a -not -user hadoop -ls
find /etc -mtime -7 -a -not \(-user root -o -user hadoop\) -ls
查找/etc目录下至少有一类用户没有执行权限的文件
find /etc -not -perm -111 -type f -ls
查找/etc目录下所有用户都有执行权限,且其他用户有写权限的所有文件
find /etc -perm -113 -type f -ls
find和locate
最新推荐文章于 2024-08-08 09:03:17 发布