linux文件及文件内容查找命令总结

简介: linux文件及文件内容查找命令总结
在linux环境下,我们经常要查找一个文件或者文件的内容,但搜索的命令有很多,这些命令都有什么区别,应该怎么选择和使用呢?

下面总结了一些常见的文件查找、内容查找的命令,收藏起来备用吧。

文件查找

whereis

显示命令路径以及命令相关的帮助手册文件路径,可以根据参数限定只查询命令、源文件和man文件。

常用参数

  • -b :查找可执行文件
  • -m :查找在man路径下的帮助文件
  • -s :查找源代码文件
whereis pwd #查找pwd命令的相关文件
whereis -m pwd #查找pwd命令的帮助文件

locate

从linux内置的索引数据库/var/lib/mlocate/mlocate.db查找文件,查询速度超快,但是新建的文件可能需要一定时间才能加入该索引数据库,可以执行updatedb命令强制更新一次索引。该命令通常会返回大量匹配项,可以使用 -r 选项通过正则表达式来精确匹配。

centos默认没有该命令,需要安装yum install mlocate,然后执行updatedb初始化文件库。

格式:locate [选项] 文件名

常用参数

  • -i:忽略大小写
  • -l:仅输出几行的意思,例如输出5行则是-l 5;
  • -r :后面可接正则表达式的显示方式
  • -c:不输出文件名,仅计算找到的文件数量;

常用使用案例

locate pwd # 查找pwd命令相关的所有文件
locate /etc/sh # 查找etc目录下以sh开头的文件
locate -c /etc/sh #查找etc目录下以sh开头的文件数
locate -l 4 passwd # 是输出前4行

find

find的功能非常强大,它是从文件系统中进行搜索,默认从根目录搜索,速度很慢,一般是搜索指定目录下符合条件的文件。

格式:find + 查找的路径 + 参数 + 限定条件

常用参数:

  • -name:按照名称查找
  • -type:安装文件类型查找(“f”标识文件,"d"表示文件夹)
  • -size:根据大小查找
  • -perm:根据权限查找
  • -mtime:根据修改时间查找
  • -atime:根据访问时间查找

常用使用案例

find ./ -name test.sh # 查看当前目录下名为test.sh的文件
find ./ -name '*.sh' # 查找当前目录下后缀为sh的文件。
find /etc -type f # 查找etc目录下的所有文件
find /etc -type d # 查找etc目录下的所有文件夹
find /home -size 10M #  查找home目录下等于10M的文件
find /home -size +10M # 查找home目录下大于10M的文件
find /home  # 查找home目录下小于10M的文件
find /home -size +5M -size -10M # 查找home目录下大于5M小于10M的文件
find /home -perm 777 # 查找home目录下权限为777的文件或目录
find / -mtime -3 #查找3天内修改过的文件
find / -atime -3 #查找3天内访问过的文件

总结,这三个命令都是查找文件的,whereislocate都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找真实的文件,所以资源消耗比较大,速度慢。查找一般文件优先使用whereislocate,两个都搜索不到或者需要使用更多条件搜索再使用find。

内容查找

grep

grep是linux系统一个强大的文本搜索工具,可以从文本文件或者管道数据流中筛选匹配的行或者数据。可以使用字符串或者正则表达式匹配。

格式:grep + 参数 + 模式匹配 + 查找的文件

常用参数

  • -v:显示不匹配的文本(排查符合的行)
  • -i:不区分大小写
  • -n:显示匹配行及行号
  • -c:显示匹配的行数
  • -o:只输出匹配的内容
  • -w:精确匹配过滤的字符串

常用使用案例

grep "cpu" cpuinfo # 输出文件中包含cpu的行
grep -v "cpu" cpuinfo # 输出文件中不包含cpu的行
grep -n "cpu" cpuinfo # 输出文件中包含cpu的行及行号
grep -c "cpu" cpuinfo # 输出文件中匹配cpu字符串的数量
grep -o "cpu" cpuinfo # 只输出匹配的内容cpu
grep -w "cpu" cpuinfo # 只匹配cpu这个单词的行

image-20210720182852365

image-20210720183107154

vim

如果要查找某个字符串的位置,也可以使用vi/vim命令的搜索功能:

方法如下:

1、命令模式下输入“/字符串”,例如“/cpu”

2、输入“n”查找下一个,输入"N"查找上一个。

GIF

目录
相关文章
|
1月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
73 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
22天前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
166 14
|
1月前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
80 14
Linux 10 个“who”命令示例
|
21天前
|
存储 NoSQL Linux
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
62 6
|
1月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
142 20
|
23天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
66 8
|
23天前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
143 6
|
1月前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
70 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
48 9
|
2月前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解