Linux学习之find命令
今天学习find命令
命令格式:find 路径 参数
1、根据文件名使用正则表达式进行搜索
find / -name "*.txt"
-iname 参数:忽略字母大小写
2、多正则匹配进行文件搜索
find / \( -name "*.txt" -o -name "*.log" \)
上面命令会打印出所有的 .txt 和 .pdf 文件 \ 进行括号转义
3、通过路径来进行文件搜索
find / -path "*/log/*"
查找根盘下所有路路径含有/log/的路径文件
4、find 命令否定参数 “!”
find / ! -name "*.txt"
查找所有不以 .txt 结尾的文件
5、基于目录深度进行搜索
find / -midepth 2 -name "f*"
设置 find 开始遍历的最小深度,并寻找 f 开头的文件
6、根据文件类型进行搜索
find . -type d
普通文件-------------- f
符号链接-------------- l
目录-------------------- d
字符设备-------------- c
块设备----------------- b
套接字----------------- s
FIFO------------------- p
7、根据文件时间进行搜索
#打印出在最近 7 天内被访问过的所有文件 find . -type f -atime -7 #打印出恰好在 7 天前被访问过的所有文件 find . -type f -atime 7 #打印出访问时间超过 7 天的文件 find . -type f -atime +7
单位:天
-atime(访问时间):用户最近一次访问文件的时间
-mtime(修改时间):文件内容最后一次被修改的时间
-ctime(变化时间):文件元数据(例如权限或所有权)最后一次改变的时间
单位时间:分钟
-amin -mmin -cmin
8、基于文件大小进行搜索
find . -type f -size +2k #大于2KB的文件 find . -type f -size -2k #小于2KB的文件 find . -type f -size 2K #大小等于2KB的文件
其他大小单位
b----------块(512字节)
c----------字节
w----------字(2字节)
k-----------1024字节
M----------1024K字节
G----------1024M字节
9、删除搜索匹配的文件
find . -type f -name "*.swp" -delete
删除当前目录下所有的 .swp 文件
10、利用 find 执行命令或动作
find . -type f -user root -exec chmod a+x {} \
搜索所匹配的文件套入{},分别执行 exec 后面的命令