El -depthprimario a findhace que realice una búsqueda profunda primero.
Sin embargo, la secuencia predeterminada no es una búsqueda de amplitud.
La secuencia predeterminada podría describirse informalmente como un "recorrido de profundidad primero que maneja los nodos cuando se encuentran por primera vez en lugar de hacerlo durante el retroceso".
Tengo una necesidad real de amplitud primera búsqueda. ¿Cómo puedo hacer que se findcomporte de esta manera?
Por ejemplo, con la siguiente configuración:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find tiene el siguiente comportamiento predeterminado:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
y con -depth, se realiza de la siguiente manera:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Sin embargo, lo que quiero es la siguiente opción (ficticia):
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
En otras palabras, necesito findprocesar / informar sobre todos los archivos / directorios a una profundidad determinada antes de continuar.
¿Cómo puedo hacer esto?
-bfsno sería lo que necesito ... Tengo un script simple que genera un índice para un gran proyecto de GitLab, adecuado para su inclusión en el Wiki de GitLab. Hace que los encabezados se basen jerárquicamente en los nombres de directorio. Funciona muy bien, excepto que en la estructura de archivos de ejemplo anterior se colocaría deltadebajo del charliesubtítulo, en lugar de debajo del alphaencabezado principal .
findsalida está ordenada alfabéticamente. No tengo idea de por qué ....
-bfs podría ser útil, incluso si no se ajusta perfectamente a este caso de uso.
find(al menos, no solo confind). ¿Desea solo enumerar los archivos o desea utilizar otras primarias?