linux中dirbinfoo是什么目录,如何知道命令在linux中运行的位置

假设我在unix中运行命令,如ls或rm,并且路径变量设置如下

PATH=$JAVA_HOME/bin:.:$ORACLE_HOME/bin:/sbin:/usr/sbin:/usr/bin:/usr/ccs/bin:$COBDIR/bin:/sbin:/bin:/usr/local/bin:/bin

我们如何知道ls命令从哪条路径运行? ls(只是一个例子)也可能在/ sbin /usr/bin中

所以我想知道它在哪里运行?

我无法负担搜索所有目录并知道所有目录ls所在的位置.有没有直接的方法从它运行的地方搜索ls?

解决方法:

当您在bash中运行外部命令时,bash会对该命令进行哈希处理,以避免必须两次执行路径查找. hash命令可以告诉您运行了哪个命令.如果该命令尚未在哈希的生命周期中运行,则会出错.

$hash -t ls

-bash: hash: ls: not found

$ls foo

$hash -t ls

/bin/ls

知道hash,which和type命令的不同之处是有利的.

> hash告诉你使用/散列了什么路径/命令.如果您的PATH或文件系统在哈希生命周期中发生更改,则哈希可以告诉您在更改之前发生的命令.

>这是一个在PATH环境变量中查找命令的外部命令.

> type是一个内置命令,它在本地PATH变量中查找命令,该命令可以(但几乎没有)与环境中的命令不同.

请参阅bash中的help hash以了解有关其工作原理的更多信息.

标签:bash,unix,linux

来源: https://codeday.me/bug/20190717/1490069.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值