使用别名cd到可执行文件目录

时间:2018-02-22 20:49:22

标签: bash shell alias zsh

我正在尝试编写一个别名,允许我将当前目录写入可执行文件目录。到目前为止我有这个,但它正在将我的论点添加到路径中..

Mat test(Scalar::all(0));

我这样跑:

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

$ whichcd test_bin /home/user/test_binfinal_path 是参数test_binfinal_path的附属物以及test_bin产生的最终路径。

2 个答案:

答案 0 :(得分:4)

有三个问题:

  1. 使用双引号,{<1}}会在您创建别名时运行,而不是在您运行时运行。
  2. 别名不能使用$(..)等位置参数。
  3. 根据您的描述,您似乎想要$1 + dirname而不是which + basename
  4. 所以使用一个函数:

    dirname

    现在whichcd() { cd "$(dirname "$(which "$1")")" } 会将您带到whichcd ls,因为那是/bin的位置。

答案 1 :(得分:0)

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

我有这个相同,但我正在使用realpath以及已经说过的man realpath,以防which boo指向boo实际上是符号链接的目录真正的boo是某个地方,它是某个地方的cd

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