最近、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
へ