linux系统find命令和grep命令
find命令
find命令的作用是根据文件的名称或者属性查找文件。
语法格式:
find [查找范围] [参数]
参数:
-name:按照文件的名字查找文件(可使用通配符*)
-iname:按照文件的名字查找文件(忽略大小写)
-size:按照文件的大小查询文件
+:查找大于输入的大小的文件
-:查找小于输入的大小的文件
无符号:查找等于输入的大小的文件
-mtime:按修改时间去查询
+n:表示查找n天以前的文件(不加符号默认为+)
-n:表示查找n天以内的文件
-atime:按照访问时间查找
+n:表示查找n天以前的文件(不加符号默认为+)
-n:表示查找n天以内的文件
-ctime:按照属性修改时间查找
+n:表示查找n天以前的文件(不加符号默认为+)
-n:表示查找n天以内的文件
-user:按照用户的属主查询
-group:按照用户的属组查询
-type:按文件的类型查询
-prem:按照文件的权限查询
-inum:根据index node号码查询
-a:并且(可以省略默认是并且)
-o:或者
-maxdepth:查询的目录深度(必须放在第一个参数位)
-exec:将find处理好的结果交给其他命令继续处理
案例:
案例1:查询仅在/root目录下的以index开头的文件
案例2:查询当前目录下的大小为10M的文件
为了演示文件大小的查询而生成了文件(不是准确的大小查找会出错)
dd命令:作用是生成一个文件
if:从什么地方读
of:写入什么文件
bs:每次写入多少内容
count:写入多少次
案例3:查找仅在当前目录下修改时间在三天以内的文件
案例4:查找仅在当前目录下的链接文件或文件夹文件
案例5:把 /etc 目录下的所有普通文件打包压缩到 /tmp 目录
命令解释:
tar -czPf:表示将文件打包到/tmp目录下的etc.tar.gz的gzip文件并忽视绝对路径的错误
``:表示反引号内的命令优先处理并将结果交给其他命令处理
find:表示查找 /etc 目录下的普通文件
|:管道符表示将前一个命令的结果交给之后的命令处理
xargs:将处理的文本变成以空格分隔的同一行内容
由于查找的结果带换行符,tar遇换行符会直接执行,因此需要将内容放到同一行
grep命令
grep命令使linux三剑客之一,作用是根据文本内容过滤文件(文本过滤器)。
语法格式:
grep [参数] [匹配规则] [操作对象]
参数:
-n:过滤文本时显示过滤内容在文件内的行号
-A:匹配成功后同时显示匹配行的后n行
-B:匹配成功后同时显示匹配行的前n行
-C:匹配成功后同时显示匹配行的前后n行
-c:只显示匹配成功的行数
-o:只显示匹配成功的内容
-v:反向过滤
-q:静默输出
-i:忽略大小写
-l:匹配成功后打印文件的名称
-R|-r:递归匹配
-E:使用拓展正则 等价于 egrep
案例:
案例1:显示1.txt文件中带有ye的行号和他的前后1行
案例2:使用静默输出来查看1.txt文件中查询字符a
由于静默输出没有结果,所以需要输出$?来查看结果
$?表示的是上一行命令的执行结果,0表示成功,其他数字表示执行失败。
案例3:查找在/etc目录下有多少个文件包含root
利用wc命令来统计数量
wc:匹配行数
-l:打印匹配行数
-c:打印匹配字节数
正则表达式
普通正则表达式
^:以某字符开头
$:以某字符结尾
.:匹配除换行符之外的任意单个字符
*:匹配前导字符的任意一个字符
[]:某组字符串的任意一个字符
[^]:取反
[a-z]:匹配小写字符
[A-Z]:匹配大写字符
[a-zA-Z]:匹配字母
[0-9]:匹配数字
\:取消转义
():分组
\n:表示第n个分组
拓展正则
{}:匹配的次数
{n}:匹配n次
{n,}:匹配至少n次
{n,m}:匹配n到m次
{,m}:匹配最多m次
+:匹配最少一个前导字符
?:匹配零个或一个字符
|:或
案例:
案例1:在/etc/passwd文件中,匹配以ftp开头的行
案例2:在/etc/passwd文件中,匹配以bash结尾的行
案例3:匹配本机中的ip
案例4:显示/etc/fstab中的除#号开头外的行,且#号后至少有一个空格
案例5:找出1.txt文件中至少有一个空格的行
案例6:显示nginx.conf 文件中除以#号开头的行和空行以外的内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了