Kurze Version: Gibt es einen Befehl und / oder einen Befehlssatz und / oder ein Hilfsprogramm, um die maximale Tiefe der Ordner in meinem Dateisystem zu ermitteln?
Lange Version: Ich arbeite unter Mac OS X. Ich würde gerne wissen, welcher Ordner sich auf meinem System am tiefsten befindet. Dies liegt daran, dass ich einen Befehl im Stammverzeichnis starten möchte /
und es wird rekursiv sein und ich möchte nicht, dass es hängen bleibt (unerwartete Ergebnisse). Ich muss also wissen, wie viele Ordnerebenen sich dazwischen befinden /
und der tiefste Ordner.
Ich habe in Google und in Foren gesucht, konnte aber nichts schlüssiges finden. Ich habe gelesen, dass das HFS + -Dateisystem, das ich verwende, keine Tiefenbegrenzung hat, aber vielleicht gibt es eine Begrenzung in der Länge des Pfadnamens?
EDIT: Jemand versucht es fs auffüllen aber es ist eine schmutzige Lösung ... Ich hätte gerne eine "sauberere", wenn möglich. In der Tat wäre es ausreichend, die maximale Tiefe meines aktuellen Systems zu finden, ohne die Grenzen zu testen.
Danke für Ihre Hilfe !
quelle
Antworten:
Im Folgenden wird das gesamte Dateisystem durchsucht, indem nur nach Verzeichnissen gesucht wird. Dabei wird alles entfernt, was kein Schrägstrich (Pfadbegrenzer) ist, und der längste Pfad wird gedruckt (zumindest in meinem System hängt das Sortierverhalten vom Gebietsschema ab).
Zählen Sie die resultierenden Schrägstriche. Dies ist einer für jedes Verzeichnis außer root, also der tiefste Verzeichnispfad
/Users/danielbeck
wäre das Ergebnis//
. Natürlich können sich Dateien in diesem Verzeichnis befinden.quelle
//////////////////////////
wenn jemand interessiert ist (das sind 26 Ordner tief).Beyogen auf Daniel Beck Antwort aber für diejenigen, die gerne Maschinen zählen
find / -type d | sed 's|[^/]||g' | sort | tail -n1 | egrep -i -o / | wc -l
Wenn der tiefste Verzeichnispfad war
/Users/danielbeck
wäre das Ergebnis2
quelle
einfachster Weg ?
dein tiefstes dir ist jetzt das.
weniger einfacher Weg? Wahrscheinlich so etwas wie:
Das heißt: Alle Dateipfade anzeigen. Rippt alles aus, was nicht / ist. Zählen Sie, wie viele es waren, und zeigen Sie dann die höchste Zahl an.
Etwas in der Art - Sie können es gerne verbessern, ziemlich sicher, dass die Datei / tmp mit einer Art In-Memory-Datei vermieden werden kann.
quelle
find
oderls
: mywiki.wooledge.org/ParsingLs