広く普及している標準はありません。ある程度の一貫性があります。ただし、各プログラムのドキュメントを確認する必要があります。
ウィキペディアの引用、強調:
<ブロック引用>Unix ライクなシステムでは、ASCII ハイフン - マイナス記号がオプションの指定によく使用されます。通常、文字の後に 1 つ以上の文字が続きます .文字を含まない単一のハイフンマイナスだけの引数は、通常、プログラムが標準入力からのデータを処理するか、データを標準出力に送信する必要があることを指定します。 2 つのハイフン - マイナス文字 ( -- ) は、より説明的なオプション名が使用される「長いオプション」を指定するために一部のプログラムで使用されます .これは GNU ソフトウェアの一般的な機能です。
通常、ハイフンは定義済みの引数を示します。それらを区別するために使用されていると思います。引数として使用できるファイル名またはその他のラベル。ただし、常にそうであるとは限りません (以下を参照)。
多くの場合、短いオプションと長いオプションの両方で同じ引数を使用できます。
一部のプログラムでは、1 文字のオプションに 1 つのハイフンを使用し、複数文字のオプションに 2 つのハイフンを使用しますが、すべてではありません (GNU find
頭に浮かぶ)。一部のプログラムには、オプションのハイフンがあるか、ハイフンをすべてスキップします (tar
または BSD ps
考えてみてください)。
時には長いオプション (--foo
) 引数が必要ですが、短いオプション (-f
) しません (または、少なくとも特定の既定の引数を暗示します)。
短いオプション (例:cut -d ' '
) は引数を持つことができますが、長いオプション (例:ls --all
) 必ずしも持っているとは限りません。
プログラムの特定の動作を設定するには、短いオプションを使用する必要がある場合もあれば、長いオプションを使用する必要がある場合もあり、選択肢がある場合もあります。
関連して、オプションとその引数の間の空白を処理できないプログラムもあれば、処理できないプログラムもあります。
最初に書いたように、共通の動作や標準はありません。多くの場合、引数の解析に使用される同じライブラリと同様の動作をたどることができますが、これを見つけるためにソースを読みたくないでしょう。
あるプログラムの引数構文を別のプログラムから推測することはできません。
Windows も考慮すると、状況はさらに悪化します。Windows のコマンド ライン呼び出しでは、伝統的に /f
が使用されますが、 :
を使用したオプション (少なくともほとんどの場合、1 文字) オプションとその値の間の区切りとして (たとえば、こちらを参照)。クロスプラットフォーム ユーティリティ (あなたが言及したものなど) は広く普及しており、上記のすべての矛盾を伴う、より一般的な引数のハイフン構文をもたらします。
ls --help
を実行するだけです オプションを見てください。それはあなたには明らかなはずです。
パラメータとはまったく関係ありません。多くのオプションには短い形式と長い形式があり、多くのオプションには一方があり他方はありません。
また、パラメーターに関しては、長い形式でパラメーターを受け取ると、常に等号が付いているように見えるだけです。しかし、明らかに短いものは同じくらいパラメータを取ることができます。等号を使用しないだけです。
これは ls --help
からの抜粋です (man ls
同等の情報を提供します)。一部に短い形式のない長い形式があることに注意してください (--author
、 --block-size
)、一部には長い形式のない短い形式があります (-c
、 -f
、 -g
)、一部には長い形式と短い形式の両方があります (-A
/--almost-all
、 -b
/--escape
).
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print octal escapes for nongraphic characters
--block-size=SIZE use SIZE-byte blocks
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information)
with -l: show ctime and sort by name
otherwise: sort by ctime
-C list entries by columns
--color[=WHEN] control whether color is used to distinguish file
types. WHEN may be `never', `always', or `auto'
これは *nix に由来する規則です。オプションが完全に記述されている場合、オプションの前に二重ハイフンが付きます , , 短い形式で書かれている場合、単一のハイフンがオプションの前に付きます .例:ls --all --l
、 ls -al
に短縮できます .おわかりのように、すべてのオプションに 1 文字の同等物があるわけではありませんが、より多くの使用されるオプションには通常あります。
オプションが引数を受け取るかどうかは、実際には違いはありません。オプションの入力方法に関係なく、引数を受け取ることも、引数をとらないこともできます。
一度だけ使用する場合は特に問題ありませんが、たとえば .alias ファイルにコマンドを記述する場合は、フル フォームを使用するのが通例です。次の人が読みやすいように。