
當我顯示命令手冊時,它說支援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 的別名。看起來這是標準的 pwd:
$ which pwd
/bin/pwd
答案1
bash
有一個內建命令,您只需在 shell 中pwd
鍵入即可使用該命令。pwd
若要取得線上pwd
說明頁中所述的內容,您需要強制使用外部命令。您可以透過指定可執行檔的完整路徑(/bin/pwd
在您的情況下)或透過env
在行之前新增來完成此操作:env pwd
,該行啟動env
可用於向環境新增設定的命令(但此處未完成),然後env
啟動指定的命令。由於env
沒有內置,因此執行pwd
“真實” 。/bin/pwd
bash內建指令的優點pwd
是bash
追蹤目前目錄,因此取得值的成本為零,而外部指令需要在檔案系統中搜尋以確定路徑,這需要更多的 IO 密集程度。
答案2
該手冊頁文檔/bin/pwd
,但是當您執行時,pwd
您正在使用內建的 shell;查看輸出
type pwd
您的 shell 內建的功能pwd
不支援長選項(請參閱您的 shell 文件;由於您使用的是 Bash,help pwd
因此將提供摘要)。