在系统中查找文件是所有工程师的必备技能(无论你使用Windows、Linux,还是MacOS系统)。对于Linux操作系统,单个find命令可以进行大量搜索。但是,文件搜索命令不仅仅是查找命令。本文是一篇关于Linux下文件搜索命令的科普,让你在短时间内找到你需要的文件。1.findfind命令应该是最经典的命令了。说到搜索工具,第一个想到的肯定是find命令。但是,find命令非常强大。如果要介绍它的所有功能,可能要写好几篇文章。那么,这里偷懒的介绍一下最基本的根据文件名查找文件的方法。如果我们要搜索当前目录(及其子目录)下的所有.sh文件,我们可以这样搜索:2.locatlocate是另一个按文件名搜索文件的命令。与find命令不同,locate命令不需要指定路径,直接搜索即可。该命令并没有直接到系统的各个角落去搜索文件,而是在一个名为mlocate.db的数据库下搜索。该数据库位于/var/lib/mlocate/mlocate.db,其中包含系统中所有文件的索引,每天早上由cron工具自动更新。正因为如此,locate的查找速度要比find命令快很多,因为是直接在数据库中查找,自然更快。locate命令找到文件后,会直接显示文件的绝对路径,例如:但是locate命令有一个缺点,它不能搜索当天创建的文件,因为它的数据库每天只更新一次早晨。比如我现在新建一个文件,locate找不到:要解决这个问题,我们可以使用updatedb命令手动更新它的数据库:$sudoupdadb然后,我们可以搜索这个新文件。3.whichwhich命令主要用来查找可执行文件的位置。它搜索的位置在$PATH和$MANPATH环境变量中指定。默认情况下,which命令会显示可执行文件的第一个存储位置:如果一个可执行文件存储在多个位置,则可以使用-a选项列出所有位置。如果想一次查找多个文件,可以直接跟着which命令。4、whereiswhereis命令会在系统默认安装目录(通常是有root权限时默认安装的软件)中查找包含给定查询关键字的二进制文件、源代码和文档。(默认目录为/bin、/sbin、/usr/bin、/usr/lib、/usr/local/man和类似路径)。一般包括以下三部分:二进制文件的路径二进制文件的源代码路径对应man文件的路径,使用-f选项列出文件的信息。同样,我们可以使用-s将搜索限制在源代码路径,使用-m搜索man页面路径,使用-s指定搜索源代码文件的路径,使用-M指定路径搜索帮助文件。本文经授权转载自公众号“良墟Linux”。世界500强外企Linux开发工程师梁旭,在公众号分享大量Linux干货,欢迎关注!
