「検索」は複数の「最大深さ」条件をサポートしますか?

「検索」は複数の「最大深さ」条件をサポートしますか?

findディレクトリに基づいて複数のsを検索したいです。maxdepth

可能ですか?これは-maxdepth「グローバル」のようですが、回避策があるかどうか疑問に思います。

(2つの別々のコマンドを実行することが可能であることを知っていますが、1つを使用すると、より高速で呼び出しコードがより簡単になります。)

答え1

異なる一致するパス名を使用してそれらをシミュレートできます-prune。たとえば、/etc深さ1と/lib深さ2を一致させるには、次のようにします。

find /etc /lib/ \
    \( -regex '/etc/[^/]*/.*'       -prune \) \
 -o \( -regex '/lib/[^/]*/[^/]*/.*' -prune \) \
 -o -print

残りのファイルやディレクトリに対して印刷したり、他の方法で作業したりするには、最後の行を追加するときに注意する必要があります。

答え2

-maxdepthいいえ。一連のテストの間、異なる部分にfind異なるオプションを適用することはできません。指摘したようにグローバルオプションなので、すべてのテストに適用されます。複数の-maxdepthオプションを指定した場合は、最後のオプションを考慮してコマンド全体に適用します。

関連情報