-depth
1 차는 find
그것이 깊이 우선 탐색을 수행시킨다.
그러나 기본 순서는 너비 우선 검색 이 아닙니다 .
기본 시퀀스는 비공식적으로 " 백 트래킹 중에 수행되는 것이 아니라 처음 만나면 노드를 처리하는 깊이 우선 탐색"으로 설명 할 수 있습니다 .
광범위한 첫 번째 검색이 실제로 필요합니다. 어떻게 find
이런 식으로 행동 할 수 있습니까?
예를 들어, 다음 설정으로 :
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find
기본 동작은 다음과 같습니다.
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
그리고와는 -depth
다음과 같은 것이 수행
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
그러나 내가 원하는 것은 다음과 같은 (가상) 옵션입니다.
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
즉 , 계속 진행하기 전에 주어진 깊이에서 모든 파일 / 디렉토리 find
를 처리 /보고 해야 합니다 .
어떻게해야합니까?
-bfs
내가 필요로하지 않을 것이라는 것을 깨달았습니다 ... GitLab Wiki에 포함하기에 적합한 큰 GitLab 프로젝트에 대한 색인을 생성하는 간단한 스크립트가 있습니다. 디렉토리 이름을 기반으로 헤더를 계층 적으로 만듭니다. 그것은 잘 작동, 그것은 둘 것입니다 위의 예제 파일 구조에서 것을 제외시켰다 delta
세 이하 charlie
대신 부모 아래에서, 서브 헤더 alpha
헤더.
find
출력 이 알파벳순으로 정렬 된다는 것입니다 . 왜 그런지 모르겠다 ....
-bfs
할 수 있다고 생각 합니다.
find
(적어도, 아니라 만find
). 파일 만 나열 하시겠습니까, 아니면 다른 기본을 사용 하시겠습니까?