クエリで論理ORを使用する方法は?

クエリで論理ORを使用する方法は?

論理OR関数はbashシェルでls次のように使用できます(もちろん私はこれを行うことができますが、ls name1 name2実際の例はもっと複雑です)。

ls @(name1|name2)

を使用してこれを行う方法はありますかfind

私の無邪気な実装:

find . -maxdepth 1 -name @("name1"|"name2") 

動作しません(何も出力しません)

ベストアンサー1

-ofor logicを使用できますOR。ただし、すべての述語に論理値があるため、一般に項目をグループ化するには括弧をfind使用する必要があります。OR括弧もシェルに意味があるため、括弧もエスケープする必要があります。

find /some/dir -maxdepth 1 \( -name '*.c' -o -name '*.h' \) -print

おすすめ記事