Bash

為什麼 pwd 不接受像 –physical 這樣的長選項?

  • January 21, 2019

當我顯示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

pwdbash內置的優點是bash跟踪目前目錄,因此獲取值是零成本,而外部命令需要在文件系統中向上搜尋以確定路徑,這需要更多的 IO 密集型。

引用自:https://unix.stackexchange.com/questions/495790