最近、findのPOSIX仕様に気づきました。 -maxdepthを含めないでください プライマリ。
慣れていない人のために、-maxdepthの目的 主なものは、findの深さのレベル数を制限することです 下降します。 -maxdepth 0 結果はのみになります 処理中のコマンドライン引数。 -maxdepth 1 コマンドライン引数などで直接結果を処理するだけです。
非POSIX-maxdepthと同等の動作を得るにはどうすればよいですか。 POSIXで指定されたオプションとツールのみを使用するプライマリ?
(注:もちろん、-maxdepth 0と同等のものを取得できます -pruneを使用するだけです 最初のオペランドとしてですが、それは他の深さには及びません。)
承認された回答:
-pathを使用できます 与えられた深さに合わせて、そこで剪定します。例
find . -path '*/*/*' -prune -o -type d -print
*のように、maxdepth1になります .と一致します 、*/* ./dir1に一致します 、および*/*/* ./dir1/dir2に一致します 剪定されます。絶対開始ディレクトリを使用する場合は、先頭の/を追加する必要があります -pathへ