キーレター?オプション文字?これらは何ですか?

キーレター?オプション文字?これらは何ですか?

いくつかのGNUやGNUのようなツールは、foo -hgcf例えばfoo -h -g -c -f

例はタールです。tar cXbf keepout 20 archive.shar *.txt例えばtar -c -b 20 -X keepout -f archive.tar *.txt

パラメータを指定する「圧縮」または「短い」スタイルに名前があるようです。名前が何であるか、それについて詳しく知る方法と、ツールがそれをサポートしているかどうかを確認する方法を知っている人はいますか?

答え1

従来のUnixでは、オプションはまたはls -lなどの文字ですls -d。場合によっては、オプションはcut -d: -f1 /etc/passwd-d(区切り文字)と値:-f(選択するフィールド)と値1)などのパラメータを受け入れます。オプションに引数がない場合は、ls -l -d -F /tmp/*作成できますls -ldF /tmp/*。一部のコマンドは、+10行目から始まるようにで始まるオプションを使用しますmore +10 filemore(1)file

cut --delimiter=: --fields=1 /etc/passwd私は上記のGNUのような長いオプションのアイデアを導入したのが87年頃のGNUプロジェクトだったと思いますcut。これはより読みやすいオプションを提供し、次の問題を解決します。ただls(1)62文字と数字、あまりにも少ないオプションgcc -c -O2 --fomit-frame-pointer xxx.c...

一部の異端コマンドは、で始まる長いオプションを使用します-。たとえばconvert -adjoin -authenticate passwd some.jpg graphic.gif files.png -o here.pdfイメージマジシャン-adjoin画像を合わせるには-authenticateパスワードが必要です。これはマニュアルページのオプションリストにまとめられているので、その組み合わせはおそらく意味がありません。

多くのコマンド(すべてではありませんが、使用しているUnix属性によって異なります)は、「次は--オプションのように見えますが、もはやオプションではありません」を意味するため、GNUを使用すると通常、次のように生成されるファイルをrm(1)使用できます。-rf愚かないたずらrm -- -rf

答え2

Cで参照getopt_longそしてbash探してみてくださいgetopts

関連情報