Bash
將“whereis”命令的輸出傳遞給“cd”以一步更改目錄
我找不到將命令輸出傳遞
whereis
給同一行中的命令的方法,cd
因此我不必cd
在第二步中執行此操作。我試過像下面這樣傳遞:
cd $(whereis node_modules)
或者
cd "`dirname $(whereis node_modules)`"
還
cd "$(whereis node_modules)"
但是上述方法都不起作用。
有人能在上面的程式碼中找到什麼問題嗎?
你可以這樣做,
cd "`which node_modules`"
獲取
dirname
目錄:cd "$(dirname "$(which node_modules)" )"
正如您在評論中提到的那樣,我希望一步完成並假設
nod_module
是一個目錄,因此您可以使用以下命令執行此操作:cd $(whereis node_modules | cut -d ' ' -f2)
(請注意,後一個命令假定使用的是 Linux
whereis
,而不是 BSD,並且路徑不包含任何空格。)正如@Dani_I 所建議的,你可以看看這個Why not use “which”? 那該用什麼?,這可能更有用。
這似乎可以解決問題:
cd "$(dirname "$(whereis node_modules)")"
如果根據您的評論,如果它是一個目錄,您想進入目標:
location=$(whereis node_modules) if [[ -d "$location" ]]; then cd "$location" else cd "$(dirname "$location" )" fi
以上可以很容易地在你的
.bash_profile
.