lsd: Moderne, ergonomische Alternative zu ls
Warum lsd
- Bessere Lesbarkeit: Farben, Spaltenlayout, optionale Icons.
- Mehr Features: Tree-Ansicht, flexible Sortierung, optionale Git-Spalte, gruppierte Verzeichnisse.
- Konfigurierbar: Zentrale YAML-Konfiguration, sinnvolle Defaults.
- Portabel und schnell: Rust-basiert, Linux/macOS/Windows/BSD.
Installation
Linux
- Debian/Ubuntu (Repo):
Falls nicht verfügbar: .deb von GitHub-Releases installieren.sudo apt update sudo apt install lsdwget https://github.com/lsd-rs/lsd/releases/latest/download/lsd_amd64.deb sudo apt install ./lsd_amd64.deb - Fedora:
sudo dnf install lsd - Arch/Manjaro:
sudo pacman -S lsd - openSUSE:
sudo zypper install lsd
macOS
brew install lsdWindows
- Scoop:
scoop install lsd - Chocolatey:
choco install lsd - Winget:
winget install lsd-rs.lsd
Cargo (alle Plattformen)
cargo install lsdSchnelleinstieg
Grundlegend
- Standardliste:
lsd - Alle Dateien (inkl. versteckter):
lsd -a - Lange Ansicht (zusätzliche Spalten):
lsd -l - Rekursiv (Tree):
lsd --tree - Tree mit Tiefe:
lsd --tree --depth 2
Sortierung und Gruppierung
- Nach Größe/Datum/Endung/Name:
lsd --sort size lsd --sort time lsd --sort extension lsd --sort name - Verzeichnisse zuerst:
lsd --group-dirs=first
Git-Status
- Git-Spalte in -l anzeigen (in Git-Repos):
lsd -l --git
Filter
- Nur Verzeichnisse:
lsd --only-dirs - Glob ignorieren:
lsd --ignore-glob 'node_modules|target'
Icons und Fonts
- lsd kann Dateisymbole anzeigen. Für saubere Darstellung sollte ein Nerd Font im Terminal aktiviert sein (z. B. FiraCode Nerd Font).
- Icons via Konfiguration steuern (siehe unten). Ohne Nerd Font Icons deaktivieren.
Empfohlene Aliases
Alias ls → lsd (kompatible Defaults)
# ~/.bashrc oder ~/.zshrc
alias ls='lsd --group-dirs=first'
alias ll='lsd -l --group-dirs=first --header'
alias la='lsd -la --group-dirs=first --header'
alias lt='lsd --tree --depth 2 --group-dirs=first'Danach Shell neu laden:
exec $SHELL -lKonfiguration via ~/.config/lsd/config.yaml
lsd liest eine YAML-Datei für Defaults. Erzeuge bei Bedarf das Verzeichnis:
mkdir -p ~/.config/lsdBeispielkonfiguration:
# ~/.config/lsd/config.yaml
# Ausgabe-Layout und Spalten
blocks:
- permission
- user
- group
- size
- date
- name
# Farben und Icons
color:
when: always # auto | always | never
theme: default # default | custom themes (wenn installiert)
icons:
when: auto # auto | always | never
theme: fancy # fancy | unicode
# Sortierung und Gruppierung
sorting:
column: name # name | size | time | extension
reverse: false
natural: true
case_sensitive: false
group_directories_first: true
# Datumsausgabe (strftime/chrono-Format)
date: "+%Y-%m-%d %H:%M"
# Anzeige
layout: grid # grid | oneline | tree | long (lang= -l)
header: true # Kopfzeile in -l
recursion:
enabled: false
depth: 2Hinweise
- Einige Schlüssel können je nach Version variieren. Prüfe verfügbare Optionen mit:
lsd --help - Konfigurationswerte aus config.yaml entsprechen in der Regel den gleichnamigen CLI-Parametern.
- Wenn die Icons fehlerhaft angezeigt werden: Terminal-Font auf einen Nerd Font umstellen oder icons.when auf never setzen.
Shell-Completion
- Viele Pakete installieren Completion automatisch (bash/zsh/fish).
- Falls nötig, generiere Completions manuell:
# Beispielpfade – an Distribution anpassen # Zsh: mkdir -p ~/.local/share/zsh/site-functions lsd --completion zsh > ~/.local/share/zsh/site-functions/_lsd # Bash: mkdir -p ~/.local/share/bash-completion/completions lsd --completion bash > ~/.local/share/bash-completion/completions/lsd # Fish: mkdir -p ~/.config/fish/completions lsd --completion fish > ~/.config/fish/completions/lsd.fish
Performance und Praxis
- lsd ist schnell, insbesondere in großen Verzeichnissen. Tree-Ansicht und Git-Status kosten zusätzliche I/O; bei sehr großen Repos sparsam einsetzen.
- Für Skripte kannst du farblose, stabile Ausgaben erzwingen:
lsd --color=never - Für Remote-Umgebungen ohne Nerd Fonts icons.when auf never setzen, um Ausgabgarbling zu vermeiden.
Troubleshooting
- Keine Farben: Prüfe TERM (z. B. xterm-256color) und —color/Config.
- Merkwürdige Symbole/Quadrate: Nerd Font fehlt oder nicht aktiv.
- Erwartete Option fehlt: Version prüfen (lsd —version) und ggf. aktualisieren.
Tags #linuxshellcliterminallsdlsrustdotfilesnerdfontsproductivity