Il -depthprincipale a findcausare una ricerca approfondita prima.
Tuttavia, la sequenza predefinita non è una ricerca per ampiezza.
La sequenza predefinita potrebbe essere descritta in modo informale come "un attraversamento in profondità che gestisce i nodi quando vengono incontrati per la prima volta anziché farlo durante il backtracking".
Ho un reale bisogno di ampie ricerche prima. Come posso findcomportarmi in questo modo?
A titolo illustrativo, con la seguente configurazione:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find ha il seguente comportamento predefinito:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
e con -depth, si comporta come segue:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Tuttavia, ciò che voglio è la seguente (fittizia) opzione:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
In altre parole, devo findelaborare / riferire su tutti i file / directory a una determinata profondità prima di procedere oltre.
Come posso fare questo?
-bfsnon sarebbe proprio quello di cui ho bisogno ... Ho un semplice script che genera un indice per un grande progetto GitLab, adatto per l'inclusione nel Wiki GitLab. Rende le intestazioni gerarchicamente basate sui nomi di directory. Funziona benissimo, tranne per il fatto che nella struttura di file di esempio sopra sarebbe messa deltasotto il charliesottotitolo, anziché sotto l' alphaintestazione principale .
findoutput è in ordine alfabetico. Non ho idea del perché ....
-bfs potrebbe tornare utile, anche se non si adatta perfettamente a questo caso d'uso.
find(almeno, non solofind). Vuoi solo elencare i file o vuoi usare altri primari?