Die -depthprimäre findUrsache bewirkt, dass eine Tiefensuche durchgeführt wird.
Die Standardsequenz ist jedoch keine Breitensuche.
Die Standardsequenz könnte informell als "Tiefen-Erste-Durchquerung, die Knoten behandelt, wenn sie zum ersten Mal angetroffen werden, anstatt dies während des Zurückverfolgens zu tun" beschrieben werden.
Ich habe ein tatsächliches Bedürfnis nach einer breiten ersten Suche. Wie kann ich mich so findverhalten?
Zur Veranschaulichung mit folgendem Setup:
$ mkdir -p alpha/{bravo,charlie,delta}
$ touch alpha/charlie/{alpha,beta,gamma,phi}
find hat das folgende Standardverhalten:
$ find alpha
alpha
alpha/charlie
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/delta
alpha/bravo
und mit -depthführt es wie folgt aus:
$ find alpha -depth
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
alpha/charlie
alpha/delta
alpha/bravo
alpha
Was ich jedoch möchte, ist die folgende (fiktive) Option:
$ find alpha -bfs
alpha
alpha/charlie
alpha/delta
alpha/bravo
alpha/charlie/alpha
alpha/charlie/phi
alpha/charlie/beta
alpha/charlie/gamma
Mit anderen Worten, ich muss alle Dateien / Verzeichnisse in einer bestimmten Tiefe findverarbeiten / melden, bevor ich fortfahre.
Wie kann ich das machen?
-bfsdas nicht ganz das ist, was ich brauche ... Ich habe ein einfaches Skript, das einen Index für ein großes GitLab-Projekt generiert, das für die Aufnahme in das GitLab-Wiki geeignet ist. Die Header werden hierarchisch basierend auf Verzeichnisnamen erstellt. Es funktioniert hervorragend, außer dass es in der obigen Beispieldateistruktur deltaunter dem charlieUnterheader und nicht unter dem übergeordneten alphaHeader abgelegt wird .
findAusgabe ist alphabetisch sortiert. Keine Ahnung warum ....
-bfs könnte nützlich sein, auch wenn es nicht perfekt diesen Anwendungsfall passt.
find(zumindest nicht nur mitfind). Möchten Sie nur die Dateien auflisten oder andere Primärdaten verwenden?