1.搜索可执行文件:
1、which 查找可执行的文件 搜索命令所在路径以及别名:
2、whereis 只能用于搜索程序名 搜索命令所在的路径以及帮助文档所在位置:
-b:只查找可执行文件
-m:只查找帮助文件
3.locate:依赖于事先构建好的索引库,定时更新索引库 (查找速度快,模糊查找)
locate安装命令:yum install mlocate -y
-b:只匹配路径中的基名
-c:统计总共有多少符合条件个文件
4.find命令:搜索文件
用法: find [options] [查找的起始路径] [查找条件] [处理动作]
查找的起始路径:指定具体的搜索目录,默认为当前目录
查找条件:指定查找的标准,大小,文件名,类型。默认是指定路径下的所有文件
处理动作:符合查找条件的文件做出的操作,例如cp,rm,默认为输出到标准输出
查找条件:
表达式:
与: -a
或: -o
非:-not !
(1)文件名查找:
-name “pattern” | 依据文件名查找 |
---|---|
支持通配符 | * ? [] [^] |
-iname “pattern” | 不区分大小写 |
基于正则表达式模式查找 | -regex “pattern” 匹配整个路径 而不是文件名 |
(2)根据文件的从属关系查找:
-user | 属主 |
---|---|
-group | 属组 |
-uid GID | 属主ID |
-gid GID | 属组ID |
-nouser | 没有属主的文件 |
-nogroup | 没有属组的文件 |
(3)根据文件类型查找
格式: -type TYPE
f | 普通文件 |
---|---|
d | 目录 |
b | 块设备文件 |
l | 链接文件 |
c | 字符设备文件 |
p | 管道文件 |
s | socket套接字文件 |
(4)根据文件的大小查找:
-size [+|-] #UNIT
#UNIT:(#-1,#]
-#UNIT:[0,#-1)
+#UNIT:(#,OO)
(5)根据时间戳查找:
以天为单位
-atime [+|-]# 文件最后访问时间
-mtime [+|-]# 文件最后修改时间
-ctime [+|-]# 文件最后改变时间
#:[#,#-1): 10 大于等于10天前,小于9天前
-#😦#,0] -10 最后的访问时间10天以内
+#:(oo,#-1] +10 最后的访问时间在9天以前,包括9天
以分钟为单位查找:
-amin [+|-]#
-mmin [+|-]#
-cmin [+|-]#
(6)根据文件权限查找:
-perm mode 777 rwx 421
权限对象:三类 属主 属组 其他
权限位: 读 写 执行 r w x 4 2 1
mode 精确查找
/mode:任何一个权限对象中满足其一即可
-mode:所有都需要满足
基于目录层级:
-path
基于目录深度查找:
-maxdepth 最大深度
-mindepth 最小深度
处理动作:
-print: 默认动作,输出到标准输出
-fls /path/to/somefile:将查找到的文件的长格式信息写入到指定文件中
-ok commond {} ; 对执行的每个文件做commond操作,每次的操作需要用户确认
-exec commond {} ; 对执行的每个文件做commond操作
-xargs -0 commond {} ;
ifconfig grep ip地址:
1)查找/var目录下属主为root,且属组为mail的所有文件或目录:
2) 查找/etc目录下大于1M且类型为普通文件的所有文件
(3) 查找/etc目录下所有用户都没有写权限的文件:
(4) 查找/etc目录至少有一类用户没有执行权限的文件: