Wie ls
sortiere ich nach Dateityp (z. B. Verzeichnisse zuerst und dann nach Dateierweiterung)? Die in (Super User) Make ls vorgeschlagenen Antworten sortieren nach Dateityp führen zu unbekannten Optionsfehlern von ls
.
Wie ls
sortiere ich nach Dateityp (z. B. Verzeichnisse zuerst und dann nach Dateierweiterung)? Die in (Super User) Make ls vorgeschlagenen Antworten sortieren nach Dateityp führen zu unbekannten Optionsfehlern von ls
.
Antworten:
Wie Sie herausgefunden haben, unterstützt die Darwin-Version des ls
Befehls diese -X | --sort=extension
Option nicht. Diese Option ist nur in der GNU-Version von verfügbar ls
.
Sie können die GNU-Version ls
für Ihr System erhalten. Dies geschieht am einfachsten über den Homebrew- Paketmanager und das Portierungssystem. Wenn Homebrew installiert ist, tun Sie Folgendes:
brew install coreutils
um das GNU Core Utilities- Paket zu Ihrem System hinzuzufügen . Allen Hilfsprogrammen wird ein Präfix vorangestellt, g
damit sie nicht mit den Standard-Darwin- Hilfsprogrammen kollidieren, mit denen OS X ausgeliefert wird.
Mit den installierten GNU Core Utilites können Sie jetzt Folgendes tun:
gls -X
Die Ausgabe wird nach Ihren Wünschen sortiert.
Wenn Sie die GNU Core Utils anstelle der mit OS X gelieferten Dienstprogramme verwenden möchten, können Sie die folgende Zeile in Ihre ~/.bashrc
Datei einfügen:
source /usr/local/Cellar/coreutils/8.14/aliases
Und Sie müssen das g
Präfix für die Befehle nicht mehr verwenden. Ich sage, das ist nicht ganz sicher, da sich einige der GNU-Utils in ihrem Verhalten von den Bash-Built-Ins und den Darwin-Tools unterscheiden, sodass sie möglicherweise andere Dinge in Ihrer Shell-Sitzung vermasseln. Also mach das mit Vorsicht.
Basierend auf einer Antwort im verlinkten Super User-Artikel :
ls -l |sort -d -k 1.1,1.1r -k 9 | cut -c 50-
Wenn Sie die gesamte Ausgabe von sehen möchten ls -l
, lassen Sie einfach den cut
Teil weg .
/bin/ls
.