Utilities
為什麼使用多餘的破折號 (-) 將選項標誌傳遞給 tar?
要為目錄創建 tar 文件,可以輸入帶有和選項的
tar
命令:compress``verbose``file
$ tar -cvf my.tar my_directory/
但它也可以這樣做:
$ tar cvf my.tar my_directory/
也就是說,選項前面沒有破折號 (-)。為什麼你會向選項列表傳遞一個破折號 (-)?
歷史上在 UNIX 應用程序中使用的選項有幾種不同的模式。一些舊的,如tar,使用位置方案:
命令選項參數
例如 tar 使用
tar somethingf “文件操作” “要操作的文件路徑”
為了避免混淆,tar和其他一些具有舊標誌參數風格的程序允許用破折號分隔標誌,但我們大多數老人只是忽略了這一點。
其他一些命令具有更複雜的命令行語法,例如dd(1),它使用標誌、等號、路徑名、參數和梨樹中的鷓鴣,所有這些都被隨意拋棄。
在 BSD 和更高版本的 unix 中,這或多或少會收斂到標有“-”的單字元標誌,但這開始出現幾個問題:
- 標誌可能很難記住
- 有時您實際上想使用帶有“-”的名稱
- 尤其是對於 GNU 工具,可能的標誌數量開始受到限制。因此 GNU 工具添加了 GNU 長選項,例如
--output
.然後 Sun 認為多餘的“-”是多餘的,並開始使用帶有單個“-”的長樣式標誌。
這就是現在的混亂局面。