「tar --anchored」では二重ハイフンを使用し、「tar -b」では単一のハイフンを使用するのはなぜですか? [コピー]

「tar --anchored」では二重ハイフンを使用し、「tar -b」では単一のハイフンを使用するのはなぜですか? [コピー]

tar --anchoredでは、なぜ二重ハイフンを使用し、なぜ単一のハイフンを使用するのですかtar -b

なぜいくつかのコマンドラインオプションには単一のハイフン(-)があり、他のコマンドラインオプションには二重ハイフン(--)がありますか?

gitの例:

git commit --amend
git commit -a

答え1

伝統的に、長いオプション(1文字以上)は2つのダッシュで作成し、短いオプション(1文字)は1つのダッシュで作成します。しかし、すべてのプログラムがこれを尊重するわけではありません。

私が見つけることができる最も古い参考資料の1つは次のとおりです。http://www.gnu.org/fun/jokes/long-options.html

答え2

これは合意である:

  • ダッシュは以下を表します(または多く)省略パラメータ:

    command -abc
    
  • 省略された単一引数の場合、Double:

    command --alice --barry --catherine
    

これは合意にすぎないことは注目に値する。すべてのコマンドは、ダッシュに関係なく任意のスタイルの引数を使用できます(シェルからエスケープされている場合)。ここの例がcommandこれを許可するようにプログラムされている場合、できる上記の例の有効な同義語です。

command abc
command alice barry catherine

これはひどい例かもしれませんが、私が理解しようとしているのは、これが引数を位置ではなく引数として扱うメソッドの規則であるということです。あなたが望んでいないものがあります。一部のものは単一のダッシュのみを使用します。一部のものはダッシュ以外の文字を使用します(クロスコンパイルされたWindowsアプリがまだ使用しているのを見たことがあります)/...実際にはそれほど大きな違いはありません。

答え3

他の人がすでに述べたように、これは略語に単一のマイナス記号を使用するためにGNUプロジェクトによって開始されたルールです。これは1文字の長さのオプションを意味し、長いオプションには二重マイナス記号を使用します。オプションが1文字より長くなります。この規則は、GNU以外の多くのプロジェクトでよく確立され使用されていますが、導入されたときに短いオプションのみを使用することに慣れていた一部の人々を混乱させました。しかし、より多くがあります:

  • いくつかのプログラム、例えば長いオプションの最初の文字の前には、1つのマイナス記号が許可されています。この場合、このオプションは、2つのマイナス記号と完全なオプション名が指定されているように、この文字で始まる長いオプションに拡張されます。たとえば、

$ git pull -r

以下と同じ:

$ git pull --rebase

  • GNUなどの一部のプログラム日付gitに似ていますが、前に2つのマイナス記号がある場合は、いくつかの長い名前オプションのみを拡張します。

$ date --s

以下と同じ:

$ date --set

  • いくつかのプログラム、例えば愚かまたはオプションの後と値の前のスペースを省略できます。

$ mutt -f/var/mail/user

以下と同じ:

$ mutt -f /var/mail/user

  • GUNなどの一部のプログラムRM個々のオプションをグループ化できます。たとえば、

$ rm -rv dir

以下と同じ:

$ rm -r -v dir

  • 引数を含むオプションを使用する一部のプログラムは、空の二重減算オプションを使用してオプションの終わりを表示します。たとえば、次を使用する場合触れるコマンドはマイナス記号で始まるファイルを生成します。以下を行う必要があります。

$ touch -- -file

それはすべて特定のソフトウェアがオプションを解釈する方法によって異なります。

また、"-"あなたが言及している記号に注意してくださいハイフンと言う減らすほとんどのUnixユーザーの場合、これは主に一部のプログラムがプラス記号(X例えば)。バラよりここ

答え4

rmdir --ignore-fail-on-non-empty {directory} ...

単語全体の前に二重ダッシュ(--)が表示されます。それ以外の場合は、先頭にダッシュがある単一文字(-)を使用してください。

以下のその他のマニュアルを確認してください。rmdir手動、利用可能なオプションテーブルが表示されます。

-p
--ignore-fail-on-non-empty
-f, --force
-r, -R, --recursive
-v, --verbose

関連情報