这篇文章主要介绍在 Linux 下与查询相关的内容,包括如何查找一个文件以及查找一个文件中的内容等等
1、查找文件
(1)find
使用 find
命令时,需要指定查找的目录,如果没有指定,则会默认指定为当前目录,一些常用的参数如下
参数 | 描述 |
-name 文件名称 |
查找包含指定字符串的文件或目录 |
-user 用户名称 |
查找由某一用户建立的文件或目录 |
-amin 分钟 / -atime 小时 |
查找一段时间内被访问过的文件或目录 |
-cmin 分钟 / -ctime 小时 |
查找一段时间内被修改过的文件或目录 |
-perm 数字 |
查找指定权限的文件或目录 |
-size 数字 |
查找指定大小的文件或目录 |
-exec 命令 |
找到文件后对文件执行指定的命令 |
-print |
将查找结果打印在屏幕上,后置使用 |
(2)locate
它和 find
作用类似,区别在于前者是在数据库中 /var/lib/locatedb
进行查找,速度比 find
快得多
但它也有一个缺点,那就是其依赖的数据库并不是实时更新的,所以一些新增的文件或目录可能无法找到
所以在使用 locate
之前,最好先使用 updatedb
手动更新一下数据库
(3)which
该命令会在环境变量 PATH
中,查找某个命令的具体所在位置
(4)whereis
该命令在特定目录(/bin
、/etc
、/sbin
、/usr
)查找特定文件(源代码、二进制文件、帮助文件)
2、查找文件内容
可以使用 grep
命令查找包含指定字符串的文件,常用的参数如下:
参数 | 描述 |
-i |
大小写不敏感 |
-w |
模式需要匹配整个单词才算匹配成功 |
-x |
模式需要匹配整行才算匹配成功 |
-r |
在目录中查找时使用 |
-o |
只显示一行中匹配的部分 |
-n |
在显示匹配行时,同时显示行号 |
-H |
在显示匹配行时,同时显示文件名 |
-c |
只显示匹配行的计数 |
-l |
只显示包含匹配行的文件名 |
-L |
只显示不包含匹配行的文件名 |
grep
命令通常配合管道一起使用,用于对内容进行过滤,例如:ls -al /usr/bin | grep install
文章知识点与官方知识档案匹配,可进一步学习相关知识