私はシェルで作業するのが初めてなので、これらのコマンドの使用はarbitrary意的です。1つのフラグに単一のダッシュがあり、別のフラグに二重のダッシュがある可能性がある理由はありますか?
私はシェルで作業するのが初めてなので、これらのコマンドの使用はarbitrary意的です。1つのフラグに単一のダッシュがあり、別のフラグに二重のダッシュがある可能性がある理由はありますか?
回答:
単一のハイフンの後には、複数の単一文字フラグを続けることができます。二重ハイフンは、単一の複数文字オプションの前に付けられます。
この例を考えてみましょう:
tar -czf
この例では、-czf
3つの文字のフラグを指定していますc
、z
とf
。
次に、別の例を考えます。
tar --exclude
この場合、--exclude
という名前の単一の複数文字オプションを指定しますexclude
。ダブルハイフンはそれが確実に、コマンドライン引数を曖昧性を除去tar
、それとして解釈exclude
ではなく、組み合わせe
、x
、c
、l
、u
、d
、およびをe
。
cdrecord
上記のコメントで年前に言及しました。
それはすべてプログラムに依存します。通常、「-」は「短い」オプション(1文字、-h)に使用され、「-」は「長い」(er)オプションに使用されます(--help)。
通常、短いオプションは組み合わせることができます(「-h -a」は「-ha」と同じです)
Unixライクシステムでは、オプションを指定するためにASCIIハイフンマイナスがよく使用されます。通常、文字の後に1つ以上の文字が続きます。通常、文字を含まない単一のハイフン-マイナスの引数は、通常、プログラムが標準入力からのデータを処理するか、標準出力にデータを送信することを指定します。一部のプログラムでは、2つのハイフンマイナス文字(-)を使用して、より詳細なオプション名が使用される「長いオプション」を指定します。これはGNUソフトウェアの一般的な機能です。
それは本当に慣習です。ただし、これはパーサーがプログラムに渡されるオプションについてより効率的に知るのに役立ちます。さらに、これらのコマンドの解析に役立つきちんとしたユーティリティ、getopt(3)
またはgetopt_long(3)
プログラムの引数の解析に役立つ非標準のユーティリティがあります。
他の答えが言うように、複数の短いオプションを組み合わせることができるので、それは素晴らしいですtar -xzf myfile.tar.gz
。
に「lisa」という引数があった場合ls
、おそらく入力とは異なる意味がls -lisa
ありls --lisa
ます。前者はあるl
、i
、s
、およびa
パラメータではなく、言葉。
実際、を書くこともできますがls -l -i -s -a
、これはとまったく同じ意味ですがls -lisa
、それはプログラムによって異なります。
この規則に従わないプログラムもあります。最も顕著なのは私の視力のために、dd
とgcc
。