Linux

ls命令中的雙連字元(–)是什麼意思

  • April 6, 2019

我正在尋找在 linux 中僅列印目錄名稱的命令。我遇到了這種新穎的語法,我們可以將兩個連字元相鄰而無需任何單詞。

ls -ld -- */

在這個命令和一般的 linux 命令中這個雙連字元 (–) 的含義是什麼?

“–”用於標記選項的結束,從而標記參數的開始。它告訴命令將其後的所有內容視為參數而不是選項,即使某些內容可能看起來像選項。這用於多個命令,而不僅僅是ls.

這可以防止命令阻塞以連字元 (-) 或兩個 (–) 開頭的參數(例如文件名),否則會導致錯誤(沒有這樣的選項)或不可預測的結果(如果連字元的參數實際上是有效選項),因為該命令會嘗試將其解釋為選項(而不是參數)。

例如,假設您的一個論點是包含報紙文章的文件:

  • 沒有勾結,總統驚呼 - Washington Post.html

前面的“–”將防止“-No”被視為選項。

在您的範例中使用小丑 (*) 時,這一點尤其重要,因為您永遠不會事先知道來自多個子目錄的所有文件中的一個或多個是否可能以連字元開頭。

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