基本的linux可執行路徑不顯示

基本的linux可執行路徑不顯示

ls我正在嘗試找到基本命令(例如或cd使用命令)的路徑which。我看到了 的路徑ls,但沒有看到 的路徑cd。當然這兩個指令都可以正常運作。任何想法?

$ which ls
/bin/ls
$ which cd
$

答案1

cd始終是 shell 本身提供的內建指令。它不會被發現為外部實用程式。這絕對不是 Linux 特有的。

來自cdPOSIX 標準中的「應用程式使用」部分

由於cd影響當前 shell 執行環境,因此它始終作為 shell 常規內建提供。如果在子 shell 或單獨的實用程式執行環境中呼叫它,例如以下之一:

(cd /tmp)
nohup cd
find . -exec cd {} \;

它不會影響呼叫者環境的工作目錄。


尋找命令路徑的一種可移植方法是使用command -v

bash-4.4$ command -v ls
/bin/ls
bash-4.4$ command -v cd
cd

type會稍微詳細一些:

bash-4.4$ type ls
ls is /bin/ls
bash-4.4$ type cd
cd is a shell builtin

也可以看看 ”為什麼不用「哪個」呢?那該用什麼呢?

相關內容