Standardmäßig sortiert der Befehl ls nur nach dem Dateinamen, aber ich möchte, dass Verzeichnisse vor anderen Dateitypen angezeigt werden. Ich möchte vielleicht sogar, dass Dateien nach Erweiterung sortiert werden, so wie Windows Explorer nach der Typenspalte sortiert. Gibt es eine Möglichkeit, etwas Ähnliches mit ls zu tun?
44
--sort=extension
und--group-directories-first
(oder nur--group-directories
) funktioniert für mich unter Ubuntu 12.10 einwandfrei. Lohnt sich auch für Ihre Maschine! =)-X / --sort=extension
mit--group-directories-first
und allem anderen, was ich in modernen Linux-Distributionen ausprobiert habe. Das OP bezieht sich auf Fedora Core 8 (veröffentlicht 2007), sodass die Wahrscheinlichkeit besteht, dass solche Probleme in ferner Vergangenheit liegen.Unter Linux
(
man ls
Ist dein Freund!)quelle
gls --group-directories-first
auf Mac, wenn SieGNU Core utils
über Homebrew installieren-X ist die Option, die Sie suchen:
quelle
Bei Bash wird dies eine Art von Arbeit sein:
Von
man rev
:Also 1. ls gibt seine Ausgabe mit beliebigen Flags aus 2. jede Zeile wird umgekehrt 3. dann werden sie sortiert 4. und wieder umgekehrt 5. so:
Oder genauer gesagt, wie unten. Sie sind nach dem letzten Zeichen, dann nach dem vorletzten usw. sortiert. Alle .rtf-Dateien werden beispielsweise nach einer .save-Datei und einer anderen Datei ohne Erweiterung, deren Name auf 'e' endet, zusammen aufgelistet. Dann kommen .png-Dateien und so weiter. Dies funktioniert auch mit ls -l, da die Erweiterung normalerweise das letzte Element in der Zeile ist (Ausnahmen sind Zeilen wie "tmp @ -> / home / jones / tmp", in denen auf die Links die Ziele folgen).
quelle
ls -F
-F
) , wenn es durch Rohrleitungenrev
undsort
hat die Farbe nicht abstreifen (-G
).Wenn Sie nicht unter Linux sind,
sollte zuerst die Verzeichnisse sortieren (lass es mich wissen, wenn ich falsch liege). Sortiert jedoch nicht nach Erweiterung: Sie müssen die awk-Anweisung viel geschäftiger machen, wenn Sie das tun möchten ...
Um es auch mit Namen zu machen, die Leerzeichen enthalten, würde ich wahrscheinlich die awk durch etwas ersetzen, das
sed -E -e 's/([^ ]+[ ]+){8}//'
die ersten 8 Felder ausstreift, anstatt das 9. zu druckenquelle
CLICOLOR
dies aktiviert haben, die Färbung entfernt.sed -E -e 's/([^ ]+[ ]+){8}//'
die ersten 8 Felder ausstreift, anstatt das 9.ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Wenn Sie unter Linux arbeiten,
ls
unterstützt GNU die--sort
Option: -quelle
Ein guter Ansatz besteht darin, zuerst Ordner und dann die sortierten Dateien nach Erweiterungen zu trennen, indem Sie SORTIEREN und UMKEHREN ausführen:
quelle
Ich habe meinem .bashrc (Linux) die Zeile hinzugefügt
Auf diese Weise gebe ich einfach lx ein und sortiere es nach Erweiterung.
quelle
ls -X
:)