Wie kann ich Verzeichnisse mit ls auflisten und sie nach ihrem Besitzer und ihrer Gruppe sortieren?
9
Versuche dies:
ls -l | awk '{print $3, $4, $8}' | sort
Der Benutzername, der Gruppenname und der Dateiname werden gedruckt, sofern der Dateiname keine Leerzeichen enthält. Alternativ können Sie Folgendes eingeben:
ls -l | awk '{print $3, $4, $0}' | sort
Dadurch werden der Benutzername, der Gruppenname und die vollständige ls -l
Ausgabe gedruckt , zuerst sortiert nach dem Benutzernamen, dann nach dem Gruppennamen und dann nach dem, was ls -l
zuerst gedruckt wird.
Beachten Sie, dass abhängig von Ihrer Verteilung die tatsächlichen Spaltennummern unterschiedlich sein können. Ich habe meine in SUSE und Coreutils Version 5.2.1 ausprobiert.
Es gibt wahrscheinlich bessere, ausgefeiltere Lösungen, aber dies ist die einfachste und wird die meiste Zeit funktionieren.
Wie Petersohn sagte, etwas Ähnliches wie:
ls -l | awk '{print $3, $4, $8, $0}' | sort | column -t
fügte das
$8
und dascolumn -t
für hübschen Druck hinzuOder noch besser:
ls -l | sort -k 3
- sortiert nach Eigentümer und sortiert standardmäßig das nächste Feld (Gruppe) und weiterls -l | sort -k 4,4 -k 3
- sortiert nach Gruppe und dann nach Eigentümerls -l | sort -k 3,3 -k 8
- Sortiert nach Eigentümer und dann nach DateinameHinweis: Das Komma ist das Abschlussfeld.
3,3
Beginnt und endet also bei Feld 3 und3,5
sortiert von Feld 3 bis 5.quelle