基本的に、1つのコマンドで2つ(またはそれ以上)のfindコマンド(「AND」ではなく「OR」検索)を実行する方法を知りたいです。
find . -name "*.pem"
find . -name "*.crt"
ベストアンサー1
find
「または」演算子は次のとおりです-o
。
find . -name "*.pem" -o -name "*.crt"
段落ですね。つまり2番目の部分は、最初の部分がfalseの場合にのみ評価されます。一致するファイルは*.pem
テストされません*.crt
。
-o
明示的に(-a
)または暗黙的に "and"より優先順位が低いです。演算子を結合する場合は、「or」部分を括弧で囲む必要があります。
find . \( -name "*.pem" -o -name "*.crt" \) -print
私のテストでは、予想どおり正規表現を使用するよりもはるかに高速でした(正規表現はglobよりテストコストが高く、ファイル名だけで-regex
なくフルパスもテストします-name
)。