Linux -- find、xargs、locate、slocate、mlocate、which、whereis

        相比于find查找,locate查找具有无可比拟的更快的速度,这是因为locate不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息(也可以理解为建立了一个文件名称索引)。Linux系统自动创建这个数据库,并且每天通过crontab自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

        slocate的完整名称叫做:secure locate,但我也没有找到它是为什么secure的,经过与locate的比较,slocate是比locate多了一个参数:-u,它的作用是更新slocate数据库,难道它会自动在查找之前先updatedb一次从而确定结果更准确?网上也没有找到进一步的信息,不过到是发现了另一个mlocate命令。

        在ubuntu15.04里,已经默认没有了slocate命令了,mlocate是GNU locate的一个变种。相比原始的locate,它具有一个很好优点: 每次更新数据库时并不需要重新读取全部目录的内容。mlocate 在数据库中保存了时间戳信息,无需重新读取,就能判断目录内容是否改变。所以更新的速度更快,对硬盘的占用也更少。这是 mlocate 特有的功能。即mlocate更新时对磁盘的读取大大减少。结论就是mlocate是slocate的升级替代命令。

参考:linux上的文件查找locate-slocate-mlocate-04007技术笔记

使用find查找文件,参考:

Linux find 命令 | 菜鸟教程

linux文件查找命令find,xargs详述 - 田进 - 博客园

Linux find命令:在目录中查找文件(超详解)

技术|linux 中强大且常用命令:find、grep

Linux下find命令详解_liangkk的博客-CSDN博客

Linux find 命令大全 - Kimbo - 博客园

使用locate查找文件,参考:

Linux locate命令 | 菜鸟教程

每天一个linux命令:locate - 小强斋太 - 博客园

使用mlocate查找文件,参考:

技术|使用 mlocate 查找文件

比find快N多倍的查找命令 | 《Linux就该这么学》

which                 查看可执行文件的位置
whereis              查看文件的位置
locate                 配合数据库查看文件位置
find                     实际搜寻硬盘查询文件名称

  1. which     只能查可执行文件和别名(alias) ,并在PATH变量里面寻找,它是通过 PATH 环境变量到该路径内查找可执行文件,所以基本的功能是寻找可执行文件。
  2. whereis   只能查二进制文件(含可执行文件)、说明文档,源文件等,从linux文件数据库(/var/lib/slocate/slocate.db 或 /var/lib/mlocate/mlocate.db)寻找,所以有可能找到刚刚删除,或者没有发现新建的文件
  3. locate    在数据库里查找,数据库大至每天更新一次,文件名是部分匹配(见 3 locate passwd 的结果:opasswd)
  4. find      最强大,什么都能查,根据条件查找文件,在硬盘上查找,效率很低。

参考:https://www.jb51.net/LINUXjishu/512244.html

使用whereis查找,参考:

Linux whereis 基础命令 | 《Linux就该这么学》

Linux whereis命令 | 菜鸟教程

Have Fun

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值