A opção -depth de find implica a travessia da árvore em profundidade?

6

Pelo que entendi, a opção -depth do comando find faz com que as ações especificadas ocorram na saída de um diretório (e talvez eu entenda errado) durante uma travessia em profundidade de uma estrutura de árvore .

Sem a opção -depth especificada, normalmente é realizada uma ação antes da conclusão da primeira passagem em profundidade ou uma primeira passagem dos diretórios e executar a ação primeiro normalmente?

    
por leeand00 27.01.2016 / 17:50

1 resposta

9

find usa uma estratégia primeiro em profundidade (em oposição à largura inicial), seja -depth especificado ou não. -depth apenas garante que os subdiretórios sejam processados antes de seus pais.

Um exemplo rápido:

mkdir -p a/{1,2,3} b c
find .

produz

.
./a
./a/2
./a/1
./a/3
./b
./c

enquanto

find . -depth

produz

./a/2
./a/1
./a/3
./a
./b
./c
.

Se você quiser uma pesquisa abrangente, use bfs , que é uma implementação abrangente de find .

    
por 27.01.2016 / 18:06

Tags