ls
我正在嘗試找到基本命令(例如或cd
使用命令)的路徑which
。我看到了 的路徑ls
,但沒有看到 的路徑cd
。當然這兩個指令都可以正常運作。任何想法?
$ which ls
/bin/ls
$ which cd
$
答案1
cd
始終是 shell 本身提供的內建指令。它不會被發現為外部實用程式。這絕對不是 Linux 特有的。
由於
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
也可以看看 ”為什麼不用「哪個」呢?那該用什麼呢?」