簡體   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