实时查找工具,通过遍历指定起始路径下文件系统的层级结构完成对文件的查找
工作特性:
查找速度相对较慢,查找精确,实时查找
用法:
find [OPENTIOUS] [查找起始位置] [查找条件] [处理动作]
位置:指定具体搜索目标起始路径,默认为当前目录。
查找条件: 查找的标准,根据文件名,大小,类型,从属关系等标准进行,默认为所有文件。
处理动作:对符合查找条件的文件做出动作,默认为输出到标准输出。
查找条件
根据文件名查找:
- name: 指定字符串作为寻找文件或者目录的范本样式。
-iname:忽略大小写
注: 支持通配符
根据文件从属关系查找:
-user: 查找属主指定用户的所有文件
-group: 查找属组指定组的所有文件
-uid: 查找属猪指定的uid的文件
-gid: 查找属组指定gid的文件
-nouser: 查找没有属主的文件
-nogroup:查找没有数组的文件
根据文件类型查找
-type
f: 普通文件 d:目录文件 l:链接文件 b: 块设备 c:字符文件 p:管道文件 s:套接字文件
组合测试
与: -a
或:-o
非:-not, !
根据文件大小查找
-size:[+ | -]#UNIT
常见单位: K,M,G
#UNIT: (#-1,#]
-#UNIT:[0,#-1]
+#UNIT:(#,00)
根据时间戳查找
一天为单位
-atime [+ | -]#
#: [#,#-1)
-#:[#,0]
+#: (00,#-1]
根据文件权限进行查找
-perm: [/ | - ]mode
mode: 精确权限匹配
/mode: 任何一类用户的权限中的任何一位复合条件既满足;权限之间存在“或”的关系
-mode:每一类用户的权限中的每一位同时满足符合条件既满足:权限之间存在“与”的关系
处理动作
-print: 输出至标准输出
-ls: 输出文件的详细信息
-delete: 删除查找到的文件
fls /path/to/file: 把查找到的所有文件的长格式信息保存至指定位置。
-ok COMMAND {} \; 对查找到的文件执行由command表示的命令。
- exec COMMAND {} \; 与上一条命令相同,不同之处在于,此命令不需要由用户确认。
其中{}为占位符,即find命令查找出来的结果,会通过{}来作为COMMAND命令的操作对象。
注:find传递查找到的文件路径之后面的命令时,是先查出所有服务条件的文件路径,并一次性传给后面的命令,但有些此命令不能接受过长的参数,此时命令执行会失败,可通过另外一种方式来规避此种错误。 find | xargs COMMAND