MacOS - ls kann keine Ordner auflisten
Der Befehl ls
gehört zum täglichen Werkzeug eines Administrators, sowohl bei Linux als auch bei MacOS.
Das Tool bietet einen großen Funktionsumfang. Damit kann man sehr genau festlegen, was, wie und in welcher Reihenfolge aufgelistet werden soll. Der ls
-Befehl kann dadurch sehr lang und das manuelle Eingeben sehr umständlich werden.
Abhilfe schaffen sog. Alias. Das sind Kurzbefehle, die in der Konfigurationsdatei .bashrc
, .zshrc
oder einer anderen Shell vom Benutzer selbst festgelegt werden können.
Bei MacOS gibt es jedoch ein kleines Problem mit dem Auflisten von Ordnern:
> ls --g
error: unexpected argument '--g' found
Abhilfe schafft das Tool gls
, dass im Paket coreutils
enthalten ist. coreutils
ist eine Sammlung von CLI-Programmen, die für verschiedene Betriebssysteme bereitgestellt wird. Neben ls
befinden sich viele weitere bekannte Tools in der Sammlung. 3
ls
Tool bietet eine große Vielfalt an Funktionen an. Eine Übersicht mit Erklärung liefert die manpage.
man ls
SYNOPSIS
ls [-@ABCFGHILOPRSTUWabcdefghiklmnopqrstuvwxy1%,] [--color=when] [-D format] [file ...]
Linux
Das Auflisten, mit den Ordnern am Beginn, funktioniert bei Linux mit dem Befehl:
> ls -lahF --g
MacOS
MacOS gibt bei der Eingabe des gleichen Befehls einen Fehler zurück:
> ls -lahF --g
error: unexpected argument '--g' found
note: argument '--git' exists
Bevor man ls
auf seinem Mac zurechtbiegt, ist es einfacher das Kommando gls
zu nutzen. Enthalten ist es im Paket coreutils
. 2
Mithilfe von Homebrew lässt sich coreutils
sehr einfach auf dem eigenen Mac installieren. 1
brew install coreutils
Nach der erfolgreichen Installation ist der Befehl gls
verfügbar und kann genutzt werden. Damit aber nicht jedes Mal das unhandliche Kommando gls -lahF --group-directories-first
eingegeben werden muss, lohnt es sich einen Alias in der .zshrc
anzulegen.
Alias anlegen
nano .zshrc
In die Konfigurationsdateien der Shell, also.bashrc
, .zshrc
, etc., werden die Alias eingetragen.
...
###############
# ls Alias
###############
# List as normally
alias ll='ls -lah'
# Linux ONLY - List alphabetically, folders first
ls -lahF --g
# MacOS ONLY - List alphabetically, folders first
alias lf='gls -lahF --group-directories-first'
# List sub-directories
alias lsf='gls -lhR --group-directories-first'
# List newest first
alias lt='ls -lhtF'
...
Die Konfigurationsdatei ist neu einzulesen, damit die Änderungen wirksam werden. Dazu einfach ein neues Terminalfenster starten oder bash
, zsh
, etc. im bestehenden Fenster eingeben.
MacOS - machs farbig
Die Ausgabe mit gls -lahF --group-directories-first
ist noch sehr unschön und verwendet auch nicht die NerdFonds und die gewohnten Farben. Es wird alles in weis dargestellt.
Also machen wir es noch farbig 🎨.
Es sind noch zwei neue Alias in der .zshrc
anzulegen.
alias ls='lsd'
alias gls='lsd'
Und für die korrekte Farbauswahl ist noch die Zeile notwendig.
# Colors
LS_COLORS=$LS_COLORS:'di=0;32:' ; export LS_COLOR
Die Änderungen speichern und die Konfiguration neu einlesen, wie oben beschrieben.
Bei der Eingabe der Alias werden die Farben 🎨 wieder korrekt dargestellt.
Weitere Tweaks für zsh
gibt es auch 👉 hier im Blog.
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️