Linux文件查找的4个命令

1. find

find 命令应该是最经典的命令了,谈到搜索工具第一个想到的肯定是 find 命令。但是,find 命令非常强大,想要把它的功能都介绍一遍,恐怕要写好几篇文章。

所以,这里介绍最基本的,根据文件名查找文件的方法。假如我们想搜索当前目录(及其子目录)下所有 .java 文件,可以这样搜索:

Linux文件查找的4个命令_第1张图片

或者这样搜索:

假如我们想搜索指定目录(及其子目录)下的文件,可以这样搜索:

2. locate

locate 是另外一个根据文件名来搜索文件的命令。区别于 find 命令,locate 命令无需指定路径,直接搜索即可。

这个命令不是直接去系统的各个角落搜索文件,而是在一个叫 mlocate.db 的数据库下搜索。这个数据库位于 /var/lib/mlocate/mlocate.db ,它包含了系统里所有文件的索引,并且会在每天早上的时候由 cron 工具自动更新一次。

正因为如此,locate 的搜索速度远快于 find 命令,因为它直接在数据库里检索,速度自然更快。

locate 命令在找到文件之后,将直接显示该文件的绝对路径,比如:

安装:yum  -y install mlocate

为什么 locate 命令 安装的确是 mlocate ?

因为 locate 用到的是 mlocate.db 这个数据库,其实查询的是这个数据库而已,新安装的命令文件,并不会马上更新到 mlocate.db中。

安装完再尝试用locate定位内容,发现依然不好使,报了新的错误:

locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

Linux文件查找的4个命令_第2张图片

原因是安装完后没有更新库

更新库:updatedb

Linux文件查找的4个命令_第3张图片

但是 locate 命令有个弊端,它无法搜索当天所创建的文件,因为它的数据库一天只在早上更新一次。比如我现在创建一个新文件,locate 没办法搜索到。

为了解决这个问题,我们可以使用 updatedb 命令手动去更新它的数据库:updatedb

然后,我们就可以搜索到新文件了。

3. which

which 命令主要用来查找可执行文件的位置,它搜索的位置指定在 $PATH 及 $MANPATH 环境变量下的值,默认情况下, which 命令将显示可执行文件的第一个存储位置:

如果某个可执行文件存储在多个位置,可以使用 -a 选项列出所有的位置。

如果你想一次性查找多个文件,可以直接跟在 which 命令后面即可。

Linux文件查找的4个命令_第4张图片

4. whereis

whereis 命令会在系统默认安装目录(一般是有root权限时默认安装的软件)查找二进制文件、源码、文档中包含给定查询关键词的文件。(默认目录有 /bin , /sbin , /usr/bin , /usr/lib , /usr/local/man 等类似路径)。

一般包含以下三部分内容:

二进制文件的路径

二进制文件的源码路径

对应 man 文件的路径

比如我们现在搜索 ls 命令:

我们可以使用如下参数:

-b 选项来只搜索可执行文件所在位置,

-B 选项指定搜索位置,

-f 选项列出文件的信息。

-m 搜索 man page 路径,

-s 指定搜索源代码文件的路径,

-M 指定搜索帮助文件的路径。

Linux文件查找的4个命令_第5张图片

你可能感兴趣的:(Linux,linux)