Linux下的文件查找指令

1、which命令
which命令是根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名,并返回第一个搜索结果。也就是说,使用which命令,就可以看到系统命令在PATH中是否存在,以及执行的到底是哪一个位置的命令。
命令格式:which 可执行文件名称
【例】用root与一般账号查询ifconfig这各命令的完整文件
这里写图片描述
释:因为which是根据用户所设置的PATH变量内的目录去查找可执行文件的,而其不再PATH中,所以找不到。

2、find指令
http://blog.csdn.net/m0_38121874/article/details/77019127#

通常find指令不常用,因为查找速度慢。使用whereis和locate查找居多,如果实在找不到才用find来查找。因为whereis和locate是利用数据库来查找,所以速度快。那么,whereis和locate有什么异同点呢?

3、whereis:寻找特定文件
whereis命令用于程序名的搜索。和find相比,whereis查找的速度非常快,因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find那样通过遍历硬盘来查找,效率自然会很高。
但是数据库文件并不是实时更新的,因此在用whereis和locate查找文件时,有时会找到已经被删除的数据,或者刚建立的文件无法被查找到,原因就使因为数据库文件没有被更新。
(1)命令格式:whereis [-bmsu] 文件或目录名
(2)参数:
1)-b:只找二进制格式的文件;
2)-m:只找在说明文件manual路径下的文件;
3)-s:只找source源文件;
4)-u:查找不在上述三个选项当中的其他特殊文件。
【例】用不同身份查找ifconfig这个文件名
这里写图片描述
释:为何which一般用户找不到的ifconfig却可以让whereis找到?这是因为系统真的有ifconfig这个“文件”,但是用户的PATH并没有加入/sbin。所以,以后用which找不到文件时,先用文件查找命令找找再说。

4、locate:依据/var/lib/mlocate内的数据库记载,找出用户输入的关键字文件名。
Locate的使用很简单,直接在后面输入“文件的部分名称”后就能够得到结果。因为它是由数据库来查找的,而数据库的创建是每天一次,可知更新是必须的。如何更新?能否手动更新?可以,直接输入“updatedb”即可。Updatedb会根据/etc/updatedb.conf的设置去查找系统硬盘内的文件名,并更新/var/lib/mlocate内的数据库文件。
(1)命令格式:locate [-ir] keyword
(2)参数:
1)-i:忽略大小的差异;
2)-r:后面可接正则表达式的显示方式。
【例】找出系统中所有与passwd相关的文件名
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值