find命令
概念: 实时查找工具,通过遍历制定起始路径下文件系统层级结构完成文件查找
实时查找:动态查找,根据数据的整体变动不时变化
特点: 1:查找速度略慢;
2:精确查找;
3:实时查找
用法:
基本语法:find [OPTIONS] :find选项
[查找起始路径] :
1>制定具体搜索目标其实路径;
2>默认为当前目录
[查找条件] :
1>根据文件名进行查找:-name “pattern”
-iname “pattern” 不区分文件名中的大小写(pattern支持glob风格的通配符“ , ?, [], [ ^ ] ”,但不支持正则的写法) 例如:~]# find /etc/ -name "pass
2> -regex pattern:基于正则表达式模式查找文件,匹配是整个路径,而非其名;
3>根据文件从属关系进行查找:-user USERNAME:查找属主指定用户的所有文件;
~]# find /user 用户名 -ls
-group GRPNAME:查找属组指定组的所有文件;
~]# find /group 组名 -ls
-uid UID:查找属主指定的UID的所有文件;
-gid GID:查找属组指定的GID的所有文件;
-nouser:查找没有属主的文件;
-nogroup:查找没有属组的文件;
4>根据文件的类型查找:例如:find /dev -type b -ls
- 文件类型:s:套接字文件(IP地址与端口的组合)
f: 普通文件
d: 目录文件
l:符号链接文件
b:块设备 文件
c:字符设备文件
p:管道文件
5>根据权限查找:
-perm [/|-]mode
mode:精确权限匹配;
/mode:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足;
9位权限之间存在“或”关系;
-mode:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足;
9位权限之间存在“与”关系;
[处理动作]
-print:输出至标准输出;默认的动作;
-ls:类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息;
-delete:删除查找到的文件;
-fls /PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中;
-ok COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
-exec COMMAND {} \ ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作不需要用户进行确认;
注意:find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递给后面的命令;但是有些命令不能接受过长的参数,此时命令执行会失败;另一种方式可规避此问题: