繁体   English   中英

cd使用别名进入可执行目录

[英]cd into executable directory using alias

我试图写一个别名,使我可以将当​​前目录添加到可执行目录。 到目前为止,我已经知道了,但这是将我的论点附加到路径中。

alias whichcd="cd $(basename "$(dirname "$1")")"

我这样运行:

$ whichcd test_bin
/home/user/test_binfinal_path

test_binfinal_path是参数的附肢test_bin并且最后的路径which产生。

存在三个问题:

  1. 使用双引号时, $(..)创建别名时运行 ,而不是在运行别名时运行
  2. 别名不能使用$1类的位置参数。
  3. 从您的描述中听起来您想要的是dirname + which而不是basename + dirname

所以使用一个函数:

whichcd() {
  cd "$(dirname "$(which "$1")")"
}

现在whichcd ls将带您进入/bin因为那是/bin/ls所在的位置。

我不会再解释其他人已经解释过的事情。

我有同样的想法,但是除了man realpath所说的以外,我还在使用realpath,如果which boo指向目录中boo实际上是一个符号链接,而实际的boo在某处,则cd到某处

goto () {
    cd $(dirname $(realpath $(which $1)))
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM