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
。印刷するには、afile
2 つのオプションがあります。
最初のオプション:
@maloが述べたように、GNUおよびBSDバージョンのFindコマンドで括弧が最も高い優先順位を持つため、実行すると結果を印刷find . \( -name afile -o -name bfile \) -a -print
できます。afile
2番目のオプション:
オプションを渡さないことによって-print
。したがって、その理由はfind . -name afile -o -name bfile
何もより高い優先順位を持たないからです-o
。