一.文件搜索命令:locate find
locate: 依赖于事先构建好的索引库,定时更新索引库(updatedb)。查找速度快,模糊查找。
yum install mlocate -y:安装locate命令。
-b:只匹配路径中的基名。
-c:统计总共有多少符合条件个文件。
二.搜索可执行文件:which
whereis
which:查找可执行的文件,搜索命令所在路径以及别名。
whereis:只能用于搜索程序名,搜索命令所在的路径以及帮助文档所在位置
-b:只查找可执行文件
-m:只查找帮助文件
三.文件搜索命令:find
-
find [options] [查找的起始路径] [查找条件] [处理动作]
-
查找的起始路径:指定具体的搜索目录,默认为当前目录
-
查找条件:指定查找的标准,大小,文件名,类型。默认是指定路径下的所有文件
-
处理动作:符合查找条件的文件做出的操作,例如cp,rm,默认为输出到标准输出
通配符 | 作用 |
---|---|
* | 匹配任意字符 |
[ ] | 匹配指定范围内的任意字符 |
? | 匹配任意一个字符 |
-
查找条件: 表达式: 选项 测试 组合 与 -a 或 -o 非:-not !
条件:
文件名查找:
-name "pattern" --- 引号需要加
支持通配符 * ? [] [^]
-iname "pattern" 不区分大小写
基于正则表达式模式查找
-regex "pattern" 匹配整个路径 而不是文件名
- -user:查找属主指定用户的所有文件;
- -group:查找属组指定组的所有文件;
- uid UID:查找属主指定的UID的所有文件;
- gid GID:查找属组指定的GID的所有文件;
- nouser:查找没有属主的文件;
- noGROUP:查找没有属组的文件。
四.根据文件的类型查找 -type
-type:根据不同的文件类型筛选
f | 普通文件 |
---|---|
s | 套接字文件 |
d | 目录文件 |
b | 块设备文件 |
l | 符合链接文件 |
c | 字符设备文件 |
p | 管道文件 |
五.根据文件大小查找
-size [+|-] #UNIT
#UNIT:(#-1,#]
-#UNIT:[0,#-1)
+#UNIT:(#,OO)
六.根据时间戳查找
根据时间戳查找
以天为单位
-atime [+|-]# 文件最后访问时间
-mtime [+|-]# 文件最后修改时间
-ctime [+|-]# 文件最后改变时间
#:[#,#-1): 10 大于等于10天前,小于9天前
-#:(#,0] -10 最后的访问时间10天以内
+#:(oo,#-1] +10 最后的访问时间在9天以前,包括9天
查找最近10天访问的文件
以分钟为单位
-amin [+|-]#
-mmin [+|-]#
-cmin [+|-]#
七.根据文件权限来查找
-perm mode 777 rwx 421
权限对象:三类 属主 属组 其他
权限位: 读 写 执行 r w x 4 2 1
mode 精确查找
/mode:任何一个权限对象中满足其一即可
-mode:所有都需要满足
421 精确,9位权限位所有的权限位保持一致
/421 只要包含,且9位权限中每个权限中有一个满足即可 或
-421 只要包含,且9位权限中每个权限均要满足 与
八.目录层级
目录层级
-path 基于目录层级
基于目录深度查找
-maxdepth 最大深度
-mindepth 最小深度