dada a seguinte estrutura:
oz123@debian:~/ $ tree .
.
├── a
│ ├── a1
│ ├── a2
│ └── a3
├── a1
│ ├── a11
│ ├── a12
│ └── a31
├── b
│ └── b1
│ ├── b11
│ │ └── b21
│ │ └── b31
│ ├── b12
│ └── b3
└── c
16 directories, 0 files
Como encontro todos os nós finais?
Encontrei as seguintes soluções que parecem boas, mas tenho que provar que não há um caso de teste que irá falhar.
A página de ajuda dos -links
estados:
Você também pode procurar arquivos que tenham um certo número de links, com '-links'. Os diretórios normalmente têm pelo menos dois links físicos; deles . entrada é a segunda. Se eles tiverem subdiretórios, cada um deles também terá um link físico chamado .. para seu diretório pai. O . e .. as entradas do diretório normalmente não são pesquisadas, a menos que sejam mencionadas na linha de comando find.
solução possível:
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
- Alguém pode fornecer uma solução melhor (sem usar canos e sed, isso tem desempenho ...)
- Funcionará em qualquer sistema de arquivos?
-links 2
truque. Não vai funcionarbtrfs
.