POSIXルックアップパラメータが他のプログラミングスタイルと異なるのはなぜですか?

POSIXルックアップパラメータが他のプログラミングスタイルと異なるのはなぜですか?

POSIXコマンドのパラメータはfind複数文字のパラメータ名に単一のハイフンを追加しますが、他のほとんどのプログラムは単一のハイフンを使用して複数の単一文字フラグを表すために使用し、複数の文字を含む単一のパラメータ名を表すために二重ハイフンを使用する理由は何ですか?

一貫性がないようで気になります。

A.それが実際に矛盾しない理由、または
B.決定の歴史。

ベストアンサー1

POSIX find は他のコマンドと同じオプションをサポートし、--他のコマンドと同様にオプションの終わりを表示します。これらは-Hとです-L

これは-print...-typeオプションではなく、時にはスルブ。これは順序が重要な引数であり、オプションの後に表示されるファイルパスの後に表示されます。また、(!。彼らは一緒に表現する検索するファイルを決定するために使用されます。

find唯一のものではありません。[(別名test)とexpr引数がビルドに使用される他のコマンド。表現する

たとえばfind[andで始まり、2つ以上の文字(、...)を含む-演算子があります。-gt-eq

同様にfindtestそのような質問があります。オペレーター混乱する可能性がありますオペランド

find -- "$file1" "$file2" -type f
[ -f "$file1" -a -f "$file2" ]

それなら何か問題があるの$file2です。もしそうなら、それは(一部)の問題です。!find=[

すべてとfindオプションtestexpr使用して式を作成することは実際には機能しません。別のオプションは、文字列をまたはawk同じ式で評価することですsed。絵

find f1 f2 \( -type f -mtime -1 -o ! -type f -newer x \) -exec ls -ld {} +

する:

find 'found = 0
      if (typeof($f) == "f") {
        if (age($f) > 1) found=1
      } else if (age($f) < age("x")) found = 1
      if ($found) exec_multi("ls -ld {}")' f1 f2

ただし、これは上記とコマンドラインが引用悪夢を引き起こす可能性があることをfind意味します。"x"

実際、AT&T Researchは次のコマンドを発行しました。台湾(トリウォーカー)、ところで今はオープンソースなのに実際にAT&Tの外部で使われるのか分からない。

おすすめ記事