다음과 같은 구조가 주어집니다.
oz123@debian:~/ $ tree .
.
├── a
│ ├── a1
│ ├── a2
│ └── a3
├── a1
│ ├── a11
│ ├── a12
│ └── a31
├── b
│ └── b1
│ ├── b11
│ │ └── b21
│ │ └── b31
│ ├── b12
│ └── b3
└── c
16 directories, 0 files
모든 엔드 노드를 어떻게 찾습니까?
나는 다음과 같은 솔루션을 찾을 것 같습니다 좋은 수를,하지만 난 그것을 실패 테스트 케이스가 아님을 증명해야합니다.
상태의 도움말 페이지 -links
:
'-links'를 사용하여 특정 수의 링크가있는 파일을 검색 할 수도 있습니다. 디렉토리에는 일반적으로 두 개 이상의 하드 링크가 있습니다. 그들의. 항목이 두 번째입니다. 하위 디렉토리가있는 경우 각 디렉토리에도 상위 디렉토리에 대한 .. 하드 링크가 있습니다. . .. 디렉토리 항목은 find 명령 행에 언급되지 않는 한 정상적으로 검색되지 않습니다.
가능한 해결책:
oz123@debian:~/ $ find . -type d -links 2
./a/a2
./a/a3
./a/a1
./c
./a1/a31
./a1/a11
./a1/a12
./b/b1/b12
./b/b1/b3
./b/b1/b11/b21/b31
- 누구나 더 나은 솔루션을 제공 할 수 있습니까 (파이프 및 sed를 사용하지 않고도 성능이 뛰어납니다 ...)
- 모든 파일 시스템에서 작동합니까?
-links 2
트릭 보다 성능이 뛰어나지 않습니다. 작동하지 않습니다btrfs
.