いくつかの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 file
。more(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