一分钟学一个 Linux 命令 - find 和 grep
|
前言
大家好,我是 god23bin。欢迎来到《一分钟学一个 Linux 命令》系列,每天只需一分钟,记住一个 Linux 命令不成问题。今天需要你花两分钟时间来学习下,因为今天要介绍的是两个常用的搜索命令:find 和 grep 命令。
find
什么是 find 命令?
find 命令用于在指定的目录下搜索文件和目录。它提供了丰富的搜索条件和选项,可以根据文件名、文件类型、文件大小、修改时间等属性进行搜索。find 命令通常用于查找特定文件或根据条件进行批量操作。
find命令通常进行的是从根目录 / 开始的全盘搜索,所以不要在高峰时期使用 find 命令。
如何使用 find 命令?
find 命令的使用相对较复杂,但掌握了基本语法后,你就能灵活使用它。
基本语法:
- 目录路径:指定要查找的目录路径。
- 选项参数:用于指定匹配条件,例如文件名、类型。
- 搜索条件:用于指定要搜索的文件和目录,满足这个条件的就会被搜索出来。
举例说明
假设我们想找到在 /opt/games 目录下所有以 .txt 扩展名结尾的文件,则可以使用以下命令:- find /opt/games -name "*.txt"
复制代码 这将在 /opt/games 目录及其子目录中搜索所有以 .txt 结尾的文件,并将它们列出。
如果要在当前目录及其子目录中查找所有以 .txt 结尾的文本文件,则可以使用以下命令:
常用选项参数
- -name:按文件名进行匹配。
- -type:按文件类型进行匹配。
- -size:按文件大小进行匹配。
- -user:按文件所属用户进行匹配。
- -mtime:(modified)按文件最后内容的修改时间进行匹配。
- -perm:(permission)按文件权限进行匹配。
例子
- 搜索 /home 目录及其子目录中包含 god23bin 结尾的目录和文件:
- find /home -name "*god23bin*"
复制代码
- 搜索 /opt/games 目录下的所有类型为目录的文件(注意:目录也是一种特殊的文件)
- 查找 /boot 目录及其子目录下所有大小大于 1MB 的文件:
- 查找 /home 目录及其子目录下所有属于 god23bin 这个用户的文件(目录):
- find /home -user god23bin
复制代码
- 搜索 /opt 目录及其子目录下最近 7 天内发生过修改的文件(目录):
按权限进行匹配
这里先说下,-perm 后面的内容使用数字或符号来表示文件权限,举个例子 /u+rw,这里的 /u 表示用户(所有者)权限,rw 表示具有读写权限,中间的 + 用来表示「具有」
还有其他几个字母:/g,组(group)权限;/o,(other)其他用户权限;/a,(all)所有用户权限。
读写可执行:r(read),w(write),x(execute)
- 表示没有:比如 /u-rw,指用户没有读写权限
- 搜索当前目录及其子目录下所有具有读写权限的文件(目录):
- 搜索当前目录及其子目录下其他用户具有读写权限的目录:
- find /opt -type d -perm /o+rw
复制代码
grep
什么是 grep 命令?
grep 命令是 global regular expression print 的缩写,用于在文件、多个文件或输入流中进行正则匹配,它会匹配我们在命令行中指定的「文本模式」(Pattern),并将结果输出打印。
换句话说,它会按我们提供的文本模式去搜索文件的内容。
如何使用 grep 命令?
grep 命令的使用非常简单,你只需在终端中输入 grep,并指定要搜索的模式和文件名。
基本语法:举例说明
现在我们在 opt/games/gta6 目录下,有一个名为 readme.txt 的文件,像搜索里面包含关键字 "VI" 的行,那么可以使用以下命令:这将在文件中查找包含 "VI" 的行,并将其打印输出。
当然,文本模式可以不用加双引号,也是可行的:
常用选项参数
- -i:(ignore)忽略大小写进行匹配。
- -n:(number)显示匹配行的行号。
- -v:(reverse)反向匹配,打印不包含模式的行。
- -r:(recursive)递归搜索指定目录及其子目录下的文件。
例子
- 在 readme.txt 中搜索 "vi",忽略大小写:
- 在 readme.txt 中搜索 http ,显示所在的行号:
- 在 show.txt 中进行反向匹配,打印不包含文本模式 “我” 的行:
- 当前目录及其子目录中递归搜索包含关键字 go 的行:
在标准输入流中搜索指定模式
Linux 中的标准输入输出、重定向、管道符-简书
基本写法:这里,command 是生成输出的命令,pattern 是要搜索的模式,| 是管道符,可以将两个命令分隔开,|左边命令的输出就会作为 | 右边命令的输入
比如在读取 show.txt 的时候搜索 god23bin:- cat show.txt | grep god23bin
复制代码
这种用法,我一般是在大量日志输出中想找到错误信息的时候会用到:- tail -2000f project-test.log | grep -i error
复制代码 总结
现在,通过两分钟的快速学习,相信你已经学费了 find 和 grep 命令的基本使用了!
find 主要用于搜索文件和目录,而 grep 命令主要用于搜索文件的内容。当然,这里实际上还只是冰山一角,剩下的交给你去探索吧!
如果你对其他 Linux 命令也感兴趣,敬请期待我后续的文章。谢谢大家的阅读!
最后的最后
希望各位屏幕前的靓仔靓女们给个三连!你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!
咱们下期再见!
来源:https://www.cnblogs.com/god23bin/p/linux-find-grep.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|
|
|
发表于 2023-6-15 00:44:29
举报
回复
分享
|
|
|
|