初识Linux-Linux下的文件查找(whereis、locate、which、find)

  1. whereis
    这个命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b),man说明文件(参数-m)和源代码文件(-s),如果活力参数,则返回所有信息。
  2. locate
    -这个命令的使用就很简单,直接在后面输入文件部分名称便可。
    这里写图片描述
    可以看到这里显示出了,所有文件名称中有passwd的都被显示出来。如果我们忘记文件完整名称时,这个命令是个好的选择。

但是这个命令在使用上是有限制的,这源自它的查找方式。下面来看看有什么限制。
首先我们在my_file中新创建一个文件test,用locate来查找test这个文件。
这里写图片描述
我们发现我们创建的文件test没有被找到,这是为什么呢?
用过find命令的话你会发现locate来寻找数据的时候特别快,这是因为locate寻找的数据是由已创建的数据库/var/lib/mlocate/里面的数据所查找到的,不用去硬盘中访问数据,必定很迅速,但是也是因为它是由数据库进行查找的,而数据库不可能时刻都在更新(一般是一天更新一次),所以说我们刚创建的文件用locate找不到,同样的,也因为是数据库更新,用locate也能查找到已经删除的文件,也是因为数据库没有进行更新,那可以手动更新数据库吗?比如当我们创建或者删除一个文件之后手动让数据库进行更新。
当然可以,在root权限下用updatedb就可以更新/var/lib/mlocate数据库。
这里写图片描述
3. which
which是在PATH变量的指定路径中,搜索某个系统命令的位置,并且返回第一个搜索结果,也就是说,使用which命令,其实就是查看某个系统命令是否存在,以及执行命令的位置
这里写图片描述
4. find
find <指定目录> <指定条件> <指定动作>
find命令用于在目录下查找文件,find是在磁盘上进行查找,所以相对来说,效率会低一些。感觉这是Linux下很重要的一个命令之一。
1)时间参数:

参数用途例子
-amin -n查找n分钟内存存取过的文件或目录find /home/my_file -amin -15
-anewer filename查找接近filename文件时间的文件和目录find /home/my_file -anewer test.txt
-atime -n查找在n*24时间曾被存取过的文件或目录(以atime为基准)find -atime -1
-cmin -n查找在指定的时间之时被更改过的文件或目录find -cmin -40
-daystart从本日起开始计算时间find ./my_file -daystart
-depth从指定目录下最深层次的子目录开始寻找find ./my_file -depth

2)文件权限及名称有关的参数:

参数用途Cool
-name filename查找文件名为filename的文件$1600
-type TYPE查找文件类型为TYPE的$12
-perm mode查找文件权限(刚好等于mode)$1
-perm -mode查看文件权限(全部包括mode)$1
-perm +mode查看文件按权限(包含任一mode)$1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值