有勇气的牛排博客

Linux find命令

有勇气的牛排 582 linux 2022-12-27 23:45:37

哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮

有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。

文章目录

1 介绍

find命令用来查找置顶目录下的文件。任何位于参数之前的字符串都会被视为所要查找的目录名。如果使用命令时不设置任何参数,则默认查找当前目录以及子目录。

语法:

find path -option
amin n : 在过去 n 分钟内被读取过 -anewer file : 比文件 file 更晚被读取过的文件 -atime n : 在过去 n 天内被读取过的文件 -cmin n : 在过去 n 分钟内被修改过 -cnewer file :比文件 file 更新的文件 -ctime n : 在过去 n 天内创建的文件 -mtime n : 在过去 n 天内修改过的文件 -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写 -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写 -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。 -type c : 文件类型是 c 的文件。 d: 目录 c: 字型装置文件 b: 区块装置文件 p: 具名贮列 f: 一般文件 l: 符号连结 s: socket

2 按后缀查文件

1、查询当前目录及子目录下,所有.log文件

find . -name "*.log"

image.png

忽略大小写,查询当前目录

find ./ -iname "*.log"

2、查询以 txt 以及 pid 结尾的文件

find ./ -name "*.log" -o -name "*.pid"

image.png

3正则

find ./ -regex ".*\(\.log\|\.pid\)$"

忽略大小写

find ./ -iregex ".*\(\.log\|\.pid\)$"

4 否定参数

查询nginx日志目录, 不以 .log 结尾的文件

find ./ ! -name "*.log"

image.png

5 按类型查找

-maxdepth: 最大深度限制
-mindepth: 距离当前目录深度

find . -type 类型参数

类型参数列表:

f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo

6 按照目录深度搜索

1、搜当前目录,最大深度深度 2 的普通文件

find . -maxdepth 2 -type f

image.png

7 按时间搜索

最后一次访问时间:-atime(天)、 -amin(分钟)
最后一次修改时间:-mtime(天)、 -mmin(分钟)
最后一次变化时间:-ctime(天)、 -cmin(分钟

最近七天内被访问过的所有文件

find . -type f -atime -7

恰好在七天前被访问过的所有文件

find . -type f -atime 7

搜索超过七天内被访问过的所有文件

find . -type f -atime +7

找出比access.log修改时间更长的所有文件

find / -type f -newer access.log

2.7 按大小搜索

b: 块(512字节)
c: 字节(512字节)
w: 字(2字节)
k: 千字节
M: 兆字节
G: 吉字节

搜索 >1M 的文件

find . -type f -size +1M

搜索 == 1M 的文件

find . -type f -size 1M

搜索 < 1M 的文件

find . -type f -size -1M

9 删除

参数: -delete

删除当前目录下所有.txt文件

find . -type f -name "*.txt" -delete

10 权限、用户、用户组

10.1 权限

语法:-perm 权限

搜索权限为777的sh脚本

find / -type f -name "*.sh" -perm 777

非777权限的

find / -type f -name "*.sh" ! -perm 777

10.2 用户

语法:-user 用户名

find / -type f -name "*.sh" -user charles

10.3 用户组

语法:-group 用户组

find / -type f -name "*.sh" -group admin

https://wangchujiang.com/linux-command/c/find.html

11 其他

统计代码行数

find /usr/local/docker -name "*.py"|xargs cat|grep -v ^$|wc -l # 代码行数统计, 排除空行

留言

专栏
文章
加入群聊