Zum Inhalt

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.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj