linux下查找文件及内容 grep

每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。我们有时候经常忘记某份文件放在硬盘中的哪个地方。

在微软的Windows操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。

可是使用Linux的用户就没有那么幸运了,在linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找”命令来寻找在硬盘上的文件。废话不多说,下面小董就详细为大家介绍一下linux下查找文件及查找包含指定内容的文件常用命令。

whereis <程序名称>
查找软件的安装路径
-b 只查找二进制文件
-m 只查找帮助文件
-s 只查找源代码
-u 排除指定类型文件
-f 只显示文件名
-B <目录> 在指定目录下查找二进制文件
-M <目录> 在指定目录下查找帮助文件
-S <目录> 在指定目录下查找源代码

locate <文件名称>
在文件索引数据库中搜索文件
-d <数据库路径> 搜索指定数据库
updatedb
更新文件索引数据库

find [路径] <表达式>
查找文件
-name <表达式> 根据文件名查找文件
-iname <表达式> 根据文件名查找文件,忽略大小写
-path <表达式> 根据路径查找文件
-ipath <表达式> 根据路径查找文件,忽略大小写
-amin <分钟> 过去N分钟内访问过的文件
-atime <天数> 过去N天内访问过的文件
-cmin <分钟> 过去N分钟内修改过的文件
-ctime <天数> 过去N天内修改过的文件
-anewer <参照文件> 比参照文件更晚被读取过的文件
-cnewer <参照文件> 比参照文件更晚被修改过的文件
-size <大小> 根据文件大小查找文件,单位b c w k M G
-type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
-user <用户名> 按归属用户查找文件
-uid <uid> 按UID查找文件
-group <群组名> 按归属群组查找文件
-gid <gid> 按GID查找文件
-empty 查找空文件

从文件内容查找匹配指定字符串的行:

$ grep "被查找的字符串" 文件名

 

从文件内容查找与正则表达式匹配的行:

$ grep –e “正则表达式” 文件名

 

查找时不区分大小写:

$ grep –i "被查找的字符串" 文件名

 

查找匹配的行数:

$ grep -c "被查找的字符串" 文件名

 

从文件内容查找不匹配指定字符串的行:

$ grep -v "被查找的字符串" 文件名

 

从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行

find / -type f -name "*.log" | xargs grep "ERROR"

 

系统查找到nginx.conf文件后即时在屏幕上显示nginx.conf文件信息。

find/-name"nginx.conf"-ls

 

在根目录下查找某个文件

find . -name "test"

 

在某个目录下查找包含某个字符串的文件

grep -r "zh_CN" ./

 

循环目录下所有文件内容中包含303i的文件

find . -type f -exec grep -l "303i" {} \;

 

### 使用 `grep` 命令在 Linux查找文件内容 #### 简单文本搜索 为了在指定文件内查找特定的内容,可以使用如下命令格式: ```bash grep 查找内容 文件 ``` 此方法适用于已知具体文件名称的情况,能够快速定位到含有目标字符串的行[^1]。 #### 忽略大小写的搜索 当不确定所查关键词的确切字母形式时,比如可能存在的大写或小写字母混合情况,可以通过添加 `-i` 参数使匹配过程变得不区分大小写: ```bash grep -i 查找内容 文件 ``` 这增加了灵活性,减少了因字符差异而遗漏的可能性。 #### 搜索目录及其子目录内的所有文件并显示行号 对于更广泛的查询需求,例如在整个项目库或是配置文件夹中寻找某段代码片段或者设置项,下面这条指令非常有用: ```bash grep -nr 查找内容 * ``` 这里 `-n` 表示打印出行号信息以便于追踪位置,而 `r` 则代表递归处理当前路径下的每一个文件。星号(*)作为通配符指代任意数量的任何字符,意味着会遍历该层以及更深层次的所有文件。 #### 高亮显示匹配的结果 为了让输出更加直观易读,还可以让终端以不同颜色突出显示符合条件的部分。通过管道(`|`)连接 `grep` 和其他工具如 `less` 或者直接利用某些版本自带的颜色支持功能即可达成目的: ```bash grep --color=always '查找内容' 文件 | less -R ``` 这种方式不仅提高了视觉上的辨识度,而且有助于提高工作效率[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值