linux环境下,我们常常要查找一个文件或则文件的内容,但搜索的命令有好多,这种命令都有哪些区别,应当如何选择和使用呢?

下边总结了一些常见的文件查找、内容查找的命令linux数据恢复,收藏上去备用吧。

文件查找

whereis

显示命令路径以及命令相关的帮助指南文件路径,可以按照参数限定只查询命令、源文件和man文件。

常用参数

whereis pwd #查找pwd命令的相关文件
whereis -m pwd #查找pwd命令的帮助文件
复制代码

locate

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

centos默认没有该命令,须要安装yuminstallmlocate,之后执行updatedb初始化文件库。

格式:locate[选项]文件名

常用参数

常用使用案例

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

find

find的功能十分强悍,它是从文件系统中进行搜索,默认从根目录搜索,速率很慢,通常是搜索指定目录下符合条件的文件。

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

常用参数:

查找linux文件的命令_linux下查找文件命令_linux查找命令的命令

常用使用案例

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天内访问过的文件
复制代码

总结linux下查找文件命令,这三个命令都是查找文件的,whereis及locate都是基于系统内建的数据库进行搜索,因而效率很高,而find则是遍历硬碟查找真实的文件,所以资源消耗比较大,速率慢。查找通常文件优先使用whereis和locate中标linux,两个都搜索不到或则须要使用更多条件搜索再使用find。

内容查找

grep

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

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

常用参数

常用使用案例

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这个单词的行
复制代码

vim

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

方式如下:

1、命令模式下输入“/字符串”linux下查找文件命令,比如“/cpu”

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

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复