Command-Line

單破折號 - 用於單字元選項,但雙破折號 -- 用於單詞?

  • January 12, 2020

使用單破折號表示字母和雙破折號表示單詞的慣例從何而來,為什麼繼續使用?

例如,如果我輸入ls --help,您會看到:

 -a, --all                  do not ignore entries starting with .
 -A, --almost-all           do not list implied . and ..
     --author               with -l, print the author of each file
 -b, --escape               print octal escapes for nongraphic characters
     --block-size=SIZE      use SIZE-byte blocks
 -B, --ignore-backups       do not list implied entries ending with ~
...

我嘗試使用Google搜尋- and -- convention,即使引用收效甚微。

The Art of Unix Programming Eric Steven Raymond 中描述了這種實踐是如何演變的:

在最初的 Unix 傳統中,命令行選項是前面有一個連字元的單個字母……最初的 Unix 風格是在緩慢的 ASR-33 電傳打字機上演變而來的,這使得簡潔成為一種美德。因此是單字母選項。按住shift鍵需要實際的努力;因此偏愛小寫,並使用“-”(而不是可能更合乎邏輯的“+”)來啟用選項。

GNU 樣式使用前面有兩個連字元的選項關鍵字(而不是關鍵字字母)。幾年後,當一些相當複雜的 GNU 實用程序開始用完單字母選項鍵(這構成了症狀的更新檔,而不是潛在疾病的治愈方法)時,它演變了。它仍然很受歡迎,因為 GNU 選項比舊樣式的字母湯更容易閱讀。1

$$ 1 $$ http://www.catb.org/esr/writings/taoup/html/ch10s05.html

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