据我了解,-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
。