find の -length オプションは深さ優先ツリーの巡回を​​意味しますか?

find の -length オプションは深さ優先ツリーの巡回を​​意味しますか?

私が理解しているように、-depthコマンドのオプションは、findツリー構造の深さ優先トラバーサル中にディレクトリを終了したときに指定されたタスクが発生するようにします(おそらく私が間違って理解している可能性があります)。

オプションが指定されていない場合、通常は深度-depth優先探索が完了する前に作業を実行しますか、またはディレクトリの幅優先探索を実行し、通常は作業を最初に実行しますか?

ベストアンサー1

find-depth指定の有無にかかわらず、深さ優先戦略が使用されます(幅優先戦略とは反対)。-depth子ディレクトリだけが親ディレクトリの前に処理されることが保証されます。

簡単な例:

mkdir -p a/{1,2,3} b c
find .

生産する

.
./a
./a/2
./a/1
./a/3
./b
./c

しかし、

find . -depth

生産する

./a/2
./a/1
./a/3
./a
./b
./c
.

幅優先検索が必要な場合は、次のものを使用できます。bfsこれは幅優先実装ですfind

おすすめ記事