linux查找文件命令除了find,除了 find,还有这些文件查找命令

原标题:除了 find,还有这些文件查找命令

转自:良许Linux

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

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

1. find

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

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

404658a9547f84489c79282b151b4739.png

2. locate

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

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

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

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

ea90bd5c5cd58e0ba33ae34f443c80d8.png

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

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

$ sudo updadb

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

538e0f0b7c2e4a4a3d2f85151a4e5f40.png

3. which

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

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

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

0d2b33b2cc12ecc684c408cf287de48c.png

4. whereis

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

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

二进制文件的路径

二进制文件的源码路径

对应 man 文件的路径

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

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

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

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值