Bash
為什麼 pwd 不接受像 –physical 這樣的長選項?
當我顯示
pwd
命令手冊時,它說--physical
支持長選項$ man pwd PWD(1) User Commands PWD(1) NAME pwd - print name of current/working directory SYNOPSIS pwd [OPTION]... DESCRIPTION Print the full filename of the current working directory. -L, --logical use PWD from environment, even if it contains symlinks -P, --physical avoid all symlinks
但是,當我鍵入以下內容時它失敗了
$ pwd --physical -bash: pwd: --: invalid option pwd: usage: pwd [-LP]
為什麼多頭期權對我不起作用?
我正在使用 RHEL 6.4。沒有為 pwd 配置別名。看起來它是標準密碼:
$ which pwd /bin/pwd
bash
有一個內置命令pwd
,當您只需pwd
在 shell 中鍵入時,您就可以使用該命令。要獲得
pwd
手冊頁所述的內容,您需要強制使用外部命令。您可以通過指定執行檔的完整路徑(/bin/pwd
在您的情況下)或env
在行之前添加:env pwd
,這將啟動env
可用於向環境添加設置的命令(但此處未完成)然後env
開始指定的命令。由於env
沒有內置函式pwd
,因此執行“真實”/bin/pwd
。
pwd
bash內置的優點是bash
跟踪目前目錄,因此獲取值是零成本,而外部命令需要在文件系統中向上搜尋以確定路徑,這需要更多的 IO 密集型。