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 后面的命令

posted @ 2018-09-06 19:05  观青山  阅读(350)  评论(0编辑  收藏  举报