Schauen Sie sich den -maxdepth
an Flag von find
find . -maxdepth 1 -type d -exec ls -ld "{}" \;
Hier habe ich 1 als maximale Leveltiefe verwendet, -type d
bedeutet nur Verzeichnisse finden, die dann ls -ld
listet den Inhalt von im Langformat auf.
Verwenden Sie find
's Optionen
Es gibt tatsächlich keine Ausführung von /bin/ls
benötigt;
Find hat eine Option, die genau das tut:
find . -maxdepth 2 -type d -ls
Um nur die eine Ebene von Unterverzeichnissen zu sehen, an der Sie interessiert sind, fügen Sie -mindepth
hinzu auf die gleiche Ebene wie -maxdepth
:
find . -mindepth 2 -maxdepth 2 -type d -ls
Ausgabeformatierung verwenden
Wenn die angezeigten Details anders sein sollten, -printf
kann jedes Detail über eine Datei in benutzerdefiniertem Format anzeigen;um die symbolischen Berechtigungen und den Eigentümernamen der Datei anzuzeigen, verwenden Sie -printf
mit %M
und %u
im format
.
Mir ist später aufgefallen, dass Sie die vollständigen Eigentumsinformationen wünschen, einschließlich der Gruppe. Verwenden Sie %g
im Format für den symbolischen Namen oder %G
für die Gruppen-ID (wie auch %U
für numerische Benutzer-ID)
find . -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
Dies sollte Ihnen genau die Details geben, die Sie für genau die richtigen Dateien benötigen.
Ich werde ein Beispiel geben, das tatsächlich unterschiedliche Werte für Benutzer und Gruppe zeigt:
$ sudo find /tmp -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
drwx------ www-data www-data /tmp/user/33
drwx------ octopussy root /tmp/user/126
drwx------ root root /tmp/user/0
drwx------ siegel root /tmp/user/1000
drwxrwxrwt root root /tmp/systemd-[...].service-HRUQmm/tmp
(Aus Gründen der Lesbarkeit bearbeitet:eingerückt, letzte Zeile gekürzt)
Hinweise zur Leistung
Obwohl die Ausführungszeit für diese Art von Befehlen meist irrelevant ist, ist die Leistungssteigerung hier groß genug, um darauf hinzuweisen:
Wir ersparen uns nicht nur die Erstellung eines neuen Prozesses für jeden Namen - ein Riesen Aufgabe - die Informationen müssen nicht einmal gelesen werden, da find
weiß es schon.
tree -L 2 -u -g -p -d
Druckt den Verzeichnisbaum in einem hübschen Format bis zur Tiefe 2 (-L 2). Benutzer (-u) und Gruppe (-g) und Berechtigungen (-p) drucken. Nur Verzeichnisse drucken (-d). Baum hat viele andere nützliche Optionen.