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
オプションを指定した場合は、最後のオプションを考慮してコマンド全体に適用します。