Sortiere ls-Befehl nach Dateityp (z. B. Verzeichnisse und Dateierweiterung)


15

Wie lssortiere 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.


2
Kleinere Korrekturen in Bezug auf Ihren Titel: ls ist kein Bash-Befehl; Es ist eine eigenständige ausführbare Datei unter /bin/ls.
erst

Antworten:


21

Wie Sie herausgefunden haben, unterstützt die Darwin-Version des lsBefehls diese -X | --sort=extensionOption nicht. Diese Option ist nur in der GNU-Version von verfügbar ls.

Sie können die GNU-Version lsfü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, gdamit 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 ~/.bashrcDatei einfügen:

source /usr/local/Cellar/coreutils/8.14/aliases

Und Sie müssen das gPrä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.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.