微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

除了find命令,还有这么多文件查找命令!

文件搜索 命令远不止一个 find  命令,还有很多。本文就对  Linux 下文件搜索命令进行一个科普,让你能够在短时间内找到自己需要的文件

在系统里查找文件,是所有工程师都必备的技能(不管你用的是 Windows 、Linux、还是 MacOS 系统)。对于 Linux 操作系统,单单一个 find 命令就可以完成非常多的搜索工作。

但是,文件搜索命令远不止一个 find 命令,还有很多。本文就对 Linux 下文件搜索命令进行一个科普,让你能够在短时间内找到自己需要的文件

除了find命令,还有这么多文件查找命令!

1. find

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

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

除了find命令,还有这么多文件查找命令!

2. locate

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

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

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

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

除了find命令,还有这么多文件查找命令!

但是 locate 命令有个弊端,它无法搜索当天所创建的文件,因为它的数据库一天只在早上更新一次。比如我现在创建一个文件,locate 没办法搜索到:
为了解决这个问题,我们可以使用 updatedb 命令手动去更新它的数据库: sudo updadb

除了find命令,还有这么多文件查找命令!

3. which

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

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

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

除了find命令,还有这么多文件查找命令!

4. whereis

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

一般包含以下三部分内容

二进制文件的路径

二进制文件的源码路径

对应 man 文件的路径

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

除了find命令,还有这么多文件查找命令!

我们可以使用 -b 选项来只搜索可执行文件所在位置,使用 -B 选项指定搜索位置,使用 -f 选项列出文件的信息。

同样地,我们可以使用 -s 限定只搜索源码路径,使用 -m 搜索 man page 路径,使用 -s 指定搜索代码文件的路径,使用 -M 指定搜索帮助文件的路径。

原文来自: https://www.linuxprobe.com/find-locate.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐