Linux集中营,指令/文件查找(二),which、type、whereis、locate

一、指令的查找

1.which

which 指令是根据 “PATH” 环境变量所规范的路径, 去搜寻“可执行文件”的文件名; 所以,重点是找出“可执行文件”,不可以找到 bash 内置的指令

which [-a] command

-a : 将所有由 PATH 目录中可以找到的指令均列出, 而不止第一个被找到的指令名称

2.type

判断某指令是来自于外部指令( 指的是其他非 bash 所提供的指令) 还是内置在
bash 当中

type [-tpa] name

选项与参数:
===> 不加任何选项与参数时, type 会显示出 name 是外部指令还是 bash 内置指令

-t ===> 当加入 -t 参数时, type 会将 name 以下面这些字眼显示出他的意义:
#file 表示为外部指令;
#alias 表示该指令为命令别名所设置的名称;
#builtin 表示该指令为 bash 内置的指令功能;

-p ===>  如果后面接的 name 为外部指令时, 才会显示完整文件名

-a ===> 会由 PATH 变量定义的路径中, 将所有含 name 的指令都列出来, 包含 alias

二、文件的查找

1.whereis

whereis 只找系统中某些特定目录下面的文件

whereis [option] [文件或目录名]

option可选参数:
-l :可以列出 whereis 会去查询的几个主要目录而已
-b :只找 binary 格式的文件
-m :只找在说明文档 manual 路径下的文件
-s :只找 source 来源文件
-u :搜寻不在上述三个项目当中的其他特殊文件

2.locate

说明:

因为 locate 寻找的数据是由“已创建的数据库 /var/lib/mlocate/” 里面的数据所搜寻到的, 所以不用直接在去硬盘当中存取数据;

注意:

而数据库的创建默认是在每天执行一次 ( 每个 distribution 都不同, CentOS 7.x 是每天更新数据库一次),所以当你新创建起来的文件, 却还在数据库更新之前搜寻该文件, 那么 locate 会告诉你“找不到! ”这时你必须要更新数据库

更新数据库:

更新 locate 数据库的方法就是直接输入 updatedb  ; updatedb 指令会去读取 /etc/updatedb.conf 这个配置文件的设置, 然后再去硬盘里面进行搜寻文件名的动作, 最后就更新整个数据库文件

locate [option] [文件/目录 的 完整名/部分名]

option可选参数:
-i : 忽略大小写的差异;
-c : 不输出文件名, 仅计算找到的文件数量
-l : 仅输出几行的意思, 例如输出五行则是 -l 5
-S : 输出 locate 所使用的数据库文件的相关信息, 包括该数据库纪录的文件/目录数量等
-r : 后面可接正则表达式的显示方式

3.find

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT蓝月

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值