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.

관련 정보