tar
のGNUマニュアル 、オプションの順序が重要であることを示す次の例があります。
tar -cfv collection.tar blues folk jazz
この場合、v
f
の後に配置されます の場合、tarアーカイブには「v」という名前が付けられ、tar
collection.tar
を追加しようとします 現在のディレクトリに存在する場合は、アーカイブに移動します。しかし、-
を省略した場合 最初から、v
にもかかわらず、コマンドは希望どおりに機能します。 f
の後に配置されます 。なぜですか?
承認された回答:
これは、さまざまなオプションスタイルが機能し、動作が異なるためです。
マニュアルページには、UNIXまたはショートオプションスタイルが記載されています。 、接頭辞が1つのダッシュで始まるもの。
引数を取らないオプションは、1つのダッシュの後にクラスター化できます。 -vkp。引数を取るオプション(必須またはオプション)は、そのようなクラスターの最後に表示できます。 -vkpfa.tar。
従来のスタイルオプションスタイル 、ダッシュのないもの:
従来のスタイルでは、最初の引数はオプション文字のクラスターであり、後続のすべての引数は、それらを必要とするオプションに引数を提供します。引数はオプション文字と同じ順序で読み取られます。すべてのオプションが処理された後に残るコマンドラインワードは、オプションではない引数として扱われます:ファイルまたはアーカイブメンバー名。
ご覧のとおり、UNIXまたはショートオプションスタイル オプションの直後にオプションへの引数が必要です。
一方、従来のスタイルのオプションスタイル オプションのブロックと、オプションに対する適切な引数が正しい順序であることが期待されます。