[英]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
類的位置參數。 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.