GNU/Linux >> Linux の 問題 >  >> Linux

オプションフラグをtarに渡すために余分なダッシュ(-)を使用するのはなぜですか?

ディレクトリのtarファイルを作成するには、tar compressを使用したコマンド 、verbose およびfile オプションは次のように入力できます:

$ tar -cvf my.tar my_directory/

ただし、この方法でも機能します:

 $ tar cvf my.tar my_directory/

つまり、オプションの前にダッシュ(-)がありません。オプションリストにダッシュ(-)を渡すのはなぜですか?

承認された回答:

UNIXアプリケーションで歴史的に使用されてきたオプションにはいくつかの異なるパターンがあります。 tarのようないくつかの古いもの 、位置スキームを使用します:

コマンドオプション引数

たとえば、tarは使用します

tar * something *f「ファイル操作」 *「操作するファイルのパス」*

混乱を避けるための最初の試みとして、 tar そして、古いフラグ引数スタイルを持つ他のいくつかのプログラムでは、フラグをダッシュ​​で区切ることができましたが、私たちのほとんどの老人は単にそれを無視していました。

他の一部のコマンドには、 dd(1)など、より複雑なコマンドライン構文があります。 フラグ、等号、パス名、引数、ナシの木のヤマウズラを使用しますが、すべて野生で放棄されています。

BSD以降のバージョンのunixでは、これは「-」でマークされた1文字のフラグに多かれ少なかれ収束していましたが、これによりいくつかの問題が発生し始めました。

  • フラグを覚えるのは難しいかもしれません
  • 実際に「-」を含む名前を使用したい場合があります
  • 特にGNUツールでは、可能なフラグの数によって制限が課せられるようになりました。そのため、GNUツールは--outputのようなGNUの長いオプションを追加しました 。

次に、Sunは、余分な「-」が冗長であると判断し、単一の「-」で長いスタイルのフラグを使用し始めました。

そして、それが今の混乱になっている理由です。


Linux
  1. BashスクリプトでCdを使用できないのはなぜですか?

  2. Linux – Tcp_defer_acceptの実際の使用?

  3. sudoedit:なぜ sudo vi で使用するのですか?

  1. Linuxを使用してヨガスタジオを管理する理由

  2. su だけでなく su - を使用するのはなぜですか?

  3. useradd コマンドでオプション -o を使用するとは何ですか?

  1. Linux –なぜSuだけでなくSuを使用するのですか?

  2. Linux – Useraddコマンドでのオプション-oの使用?

  3. Ssh -tオプションがリダイレクト出力にCrとLfを追加するのはなぜですか?