find:「-a」が「-o」より優先順位が高いことはどういう意味ですか? [コピー]

find:「-a」が「-o」より優先順位が高いことはどういう意味ですか? [コピー]

gnu findのマニュアルページには次のようなものがあります。

-aは、暗黙的に(たとえば、2つのテスト間に明示的な演算子がない)、または明示的に指定されている場合は-oよりも優先されます。これは
find . -name afile -o -name bfile -print
ファイルが印刷されないことを意味します。

上記の表現は次のとおりです。

find . -name afile -o -name bfile -a -print

私の質問は、この表現がどのように機能するかです。なぜafile印刷されないのですか?

ベストアンサー1

-and/演算子は-a論理演算子です。そしてオペレーター。両方の表現の並置で暗示されるので、明示する必要はありません。

afileはい、使用すると印刷されませんfind . -name afile -o -name bfile -a -printそして演算子より優先順位が高いです。またはオペレーター-or/ -o。印刷するには、afile2 つのオプションがあります。

最初のオプション:

@maloが述べたように、GNUおよびBSDバージョンのFindコマンドで括弧が最も高い優先順位を持つため、実行すると結果を印刷find . \( -name afile -o -name bfile \) -a -printできます。afile

2番目のオプション:

オプションを渡さないことによって-print。したがって、その理由はfind . -name afile -o -name bfile何もより高い優先順位を持たないからです-o

おすすめ記事