一分钟学一个 Linux 命令 - find 和 grep

news2024/11/25 18:11:36

前言

大家好,我是 god23bin。欢迎来到《一分钟学一个 Linux 命令》系列,每天只需一分钟,记住一个 Linux 命令不成问题。今天需要你花两分钟时间来学习下,因为今天要介绍的是两个常用的搜索命令:findgrep 命令。

find

什么是 find 命令?

find 命令用于在指定的目录下搜索文件和目录。它提供了丰富的搜索条件和选项,可以根据文件名、文件类型、文件大小、修改时间等属性进行搜索。find 命令通常用于查找特定文件或根据条件进行批量操作。

find命令通常进行的是从根目录 / 开始的全盘搜索,所以不要在高峰时期使用 find 命令。

如何使用 find 命令?

find 命令的使用相对较复杂,但掌握了基本语法后,你就能灵活使用它。

基本语法:

find 目录路径 [选项参数] [搜索条件]
  • 目录路径:指定要查找的目录路径。
  • 选项参数:用于指定匹配条件,例如文件名、类型。
  • 搜索条件:用于指定要搜索的文件和目录,满足这个条件的就会被搜索出来。

举例说明

假设我们想找到在 /opt/games 目录下所有以 .txt 扩展名结尾的文件,则可以使用以下命令:

find /opt/games -name "*.txt"

这将在 /opt/games 目录及其子目录中搜索所有以 .txt 结尾的文件,并将它们列出。

如果要在当前目录及其子目录中查找所有以 .txt 结尾的文本文件,则可以使用以下命令:

find . -name "*.txt"

常用选项参数

  • -name:按文件名进行匹配。
  • -type:按文件类型进行匹配。
  • -size:按文件大小进行匹配。
  • -user:按文件所属用户进行匹配。
  • -mtime:(modified)按文件最后内容的修改时间进行匹配。
  • -perm:(permission)按文件权限进行匹配。

例子

  1. 搜索 /home 目录及其子目录中包含 god23bin 结尾的目录和文件:
find /home -name "*god23bin*"

  1. 搜索 /opt/games 目录下的所有类型为目录的文件(注意:目录也是一种特殊的文件
find /opt/games -type d

  1. 查找 /boot 目录及其子目录下所有大小大于 1MB 的文件:
find /boot -size +1M

  1. 查找 /home 目录及其子目录下所有属于 god23bin 这个用户的文件(目录):
find /home -user god23bin

  1. 搜索 /opt 目录及其子目录下最近 7 天内发生过修改的文件(目录):
find /opt -mtime +7

按权限进行匹配

这里先说下,-perm 后面的内容使用数字或符号来表示文件权限,举个例子 /u+rw,这里的 /u 表示用户(所有者)权限,rw 表示具有读写权限,中间的 + 用来表示「具有」

还有其他几个字母:/g,组(group)权限;/o,(other)其他用户权限;/a,(all)所有用户权限。

读写可执行:r(read),w(write),x(execute)

- 表示没有:比如 /u-rw,指用户没有读写权限

  1. 搜索当前目录及其子目录下所有具有读写权限的文件(目录):
find /opt -perm /u+rw

  1. 搜索当前目录及其子目录下其他用户具有读写权限的目录:
find /opt -type d -perm /o+rw

grep

什么是 grep 命令?

grep 命令是 global regular expression print 的缩写,用于在文件、多个文件或输入流中进行正则匹配,它会匹配我们在命令行中指定的「文本模式」(Pattern),并将结果输出打印。

换句话说,它会按我们提供的文本模式去搜索文件的内容。

如何使用 grep 命令?

grep 命令的使用非常简单,你只需在终端中输入 grep,并指定要搜索的模式和文件名。

基本语法:

grep [选项参数] 文本模式 文件名

举例说明

现在我们在 opt/games/gta6 目录下,有一个名为 readme.txt 的文件,像搜索里面包含关键字 “VI” 的行,那么可以使用以下命令:

grep "VI" readme.txt

这将在文件中查找包含 “VI” 的行,并将其打印输出。

当然,文本模式可以不用加双引号,也是可行的:

grep VI readme.txt

常用选项参数

  • -i:(ignore)忽略大小写进行匹配。
  • -n:(number)显示匹配行的行号。
  • -v:(reverse)反向匹配,打印不包含模式的行。
  • -r:(recursive)递归搜索指定目录及其子目录下的文件。

例子

  1. readme.txt 中搜索 “vi”,忽略大小写:
grep -i "vi" readme.txt

  1. readme.txt 中搜索 http ,显示所在的行号:
grep -n http readme.txt

  1. show.txt 中进行反向匹配,打印不包含文本模式 “” 的行:
grep -v 我 show.txt

  1. 当前目录及其子目录中递归搜索包含关键字 go 的行:

在标准输入流中搜索指定模式

Linux 中的标准输入输出、重定向、管道符-简书

基本写法:

command | grep pattern

这里,command 是生成输出的命令,pattern 是要搜索的模式,| 是管道符,可以将两个命令分隔开,|左边命令的输出就会作为 | 右边命令的输入

比如在读取 show.txt 的时候搜索 god23bin

cat show.txt | grep god23bin

这种用法,我一般是在大量日志输出中想找到错误信息的时候会用到:

tail -2000f project-test.log | grep -i error

总结

现在,通过两分钟的快速学习,相信你已经学费了 findgrep 命令的基本使用了!

find 主要用于搜索文件和目录,而 grep 命令主要用于搜索文件的内容。当然,这里实际上还只是冰山一角,剩下的交给你去探索吧!

如果你对其他 Linux 命令也感兴趣,敬请期待我后续的文章。谢谢大家的阅读!

最后的最后

希望各位屏幕前的靓仔靓女们给个三连!你轻轻地点了个赞,那将在我的心里世界增添一颗明亮而耀眼的星!

咱们下期再见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/647787.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring是什么?

目录 1、Spring的简介 2、Spring七大功能模块 3、Spring的优点 4、Spring的缺点 5、Sprig容器 6、Spring的生态圈(重点)***** 7、Spring中bean的生命周期 1、Spring的简介 Spring的英文翻译为春天,可以说是给Java程序员带来了春天&…

认识泛型

目录 什么是泛型 引出泛型 语法 泛型类的使用 语法 示例 类型推导(Type Inference) 裸类型(Raw Type) 小结: 泛型如何编译的 擦除机制 为什么不能实例化泛型类型数组 泛型方法 定义语法 泛型接口 泛型数组 什么是泛型 一般的类和方法&#xff0c…

013:解决vue中不能加载.geojson的问题

第013个 查看专栏目录: VUE — element UI 本文章目录 问题状态造成这个结果的原因:解决办法Vue Loader 其他特性:专栏目标 问题状态 在做vue项目的时候,碰到这样一个问题,vue页面中引用一个.geojson文件,提示如下错误…

Redis-原生命令

string 单值 set key value get key 对象 set user:1 value Mset user:1:name zhangsan user:1:sex man Mget user:1:name user:1:sex 分布式锁 setnx product:1001 true 计数器/全局序列号维护 incr article:readcount:{文章id} get article:readcount:{文章id} 哈希hash…

JavaEE语法第一章、计算机工作原理

【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili 目录 一、计算机发展史 二、冯诺依曼体系(Von Neumann Architecture) 三、CPU简单介绍 3.1CPU介绍 3.2并行和并发 四、操作系统(Operating Syste…

【netty基础四】netty与nio

文章目录 一. 反应堆1. 堵塞模型2. Java NIO的工作原理 二. Netty与NIO 一. 反应堆 1. 堵塞模型 阻塞I/O在调用InputStream.read()方法时是阻塞的,它会一直等到数据到来(或超时)时才会返回; 同样,在调用ServerSocke…

PN7160 card emulation

AN13861.pdf 1 简介 本文档的目的是举例说明如何为特定的 CE 场景正确设置卡仿真 (CE)。 有关 CE 体系结构的详细说明,请查看用户手册 [5]。 卡仿真的硬件设置,参考[13]和[14]。 要求: • MCUXpresso 和/或Android 和/或Linux 的知识 • PN…

[游戏开发]Unity多边形分割为三角形_耳切法

[ 目录 ] 0. 前言1. 耳切法(1)基础的概念(2)耳点判断(3)判断角度类型(4)点是否在三角形内(5)判断顺逆时针 2. 耳切法小优化3. 耳切法实现(1&#…

openGauss5 企业版之常用运维命令

文章目录 日维护检查项检查openGauss状态检查锁信息统计事件数据对象检查SQL报告检查备份基本信息检查 检查操作系统参数检查办法异常处理 检查openGauss健康状态检查办法 本章节主要介绍在 openGauss数据库 在日常运维中的常用命令 日维护检查项 检查openGauss状态 通过open…

Java性能权威指南-总结13

Java性能权威指南-总结13 堆内存最佳实践减少内存使用减少对象大小延迟初始化 堆内存最佳实践 减少内存使用 减少对象大小 对象会占用一定数量的堆内存,所以要减少内存使用,最简单的方式就是让对象小一些。考虑运行程序的机器的内存限制,增…

Nautilus Chain测试网迎阶段性里程碑,模块化区块链拉开新序幕

Nautilus Chain 是目前行业内少有的真实实践的 Layer3 模块化链,该链曾在几个月前上线了测试网,并接受用户测试交互。该链目前正处于测试网阶段,并即将在不久上线主网,这也将是行业内首个正式上线的模块化区块链底层。 而在上个月…

Android 13(T) Media框架 -异步消息机制

网上有许多优秀的博文讲解了Android的异步消息机制(ALooper/AHandler/AMessage那一套),希望看详细代码流程的小伙伴可以去网上搜索。这篇笔记将会记录我对android异步消息机制的理解,这次学完之后就可以熟练运用这套异步消息机制了…

【数据库二】数据库用户管理与授权

数据库用户管理与授权 1.MySQL数据库管理1.1 常用的数据类型1.2 char和varchar区别1.3 SQL语句分类 2.数据表高级操作2.1 克隆表2.2 清空表2.3 创建临时表 3.MySQL的六大约束4.外键约束4.1 外键概述4.2 创建主从表4.3 主从表中插入数据4.4 主从表中删除数据4.5 删除外键约束 5.…

conda环境中配置cuda+cudnn+pytorch深度学习环境

本文参考: 在conda虚拟环境中配置cudacudnnpytorch深度学习环境(新手必看!简单可行!)_conda安装cudnn_江江ahh的博客-CSDN博客 一、创建虚拟环境 conda create -n mytorch python3.8 二、执行sudo nvidia-smi查看CU…

物联网通信技术

通信的技术指标是什么?AB A. 可靠性 B. 有效性 C. 实时性D. 广覆盖 多路复用技术有哪些?ABCD A. FDMA B. CDMA C. SDMA D. TDMA 使用多个频率来传输信号的技术被称为扩展频谱技术,该技术使用的目的是什么? AB A. 抗干扰B. 提…

【VMware】VMware安装CentOS8-Stream虚拟机

本文首发于 慕雪的寒舍 VMware安装CentOS8-Stream虚拟机 1.安装VMware 由于最新版的vm要钱,这里提供一个VMware16pro的安装包;我知道度盘下载速度慢,但确实没啥其他选择,见谅。 后文将用vm来简称VMware 提取嘛: gdt9 亚索包解…

解决UGUI的图集导致Shader采样时UV错误的问题

大家好,我是阿赵。 在我们用UGUI的时候,很多时候需要通过在UI上面挂材质球,写Shader,来实现一些特殊的效果。 这里句一个很简单的例子,只为说明问题。 一、简单例子说明 这个例子是这样的,我想在某个Imag…

Python模块openpyxl 操作Excel文件

简介 openpyxl是一个用于读取和编写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。openpyxl以Python语言和MIT许可证发布。 openpyxl可以处理Excel文件中的绝大多数内容,包括图表、图像和公式。它可以处理大量数据,支持Pandas和NumPy库导入和导出数据。…

chatgpt赋能python:Python本地安装库:一个简单易懂的指南

Python本地安装库:一个简单易懂的指南 Python是一种高级的编程语言,它拥有庞大的社区支持和无数的第三方库。如果你在使用Python时需要一些额外的功能,那么你可能需要安装一些库。本文将介绍如何在本地安装库,以及一些需要注意的…

chatgpt赋能python:如何更新Python库?Python更新库完全指南

如何更新Python库?Python更新库完全指南 Python作为一种最受欢迎的编程语言,其库和工具的数量是惊人的。这些库是Python生态系统的重要组成部分,以便帮助开发人员解决不同类型的问题。然而,这些库会更新,开发人员需要…