6.3 KiB
6.3 KiB
ls - Dateien und Verzeichnisse auflisten
Der ls-Befehl listet Dateien und Verzeichnisse auf und zeigt deren Eigenschaften.
Grundsyntax
ls [OPTIONEN] [PFAD...]
Grundlegende Verwendung
Einfache Auflistung
ls # Aktuelles Verzeichnis
ls /pfad/zum/ordner # Bestimmtes Verzeichnis
ls datei.txt # Einzelne Datei
Versteckte Dateien anzeigen
ls -a # Alle Dateien (inkl. .dotfiles)
ls -A # Alle außer . und ..
Detaillierte Ausgabe
Long Format (-l)
ls -l
Beispielausgabe:
-rw-r--r-- 1 alice developers 1234 Nov 7 10:00 datei.txt
drwxr-xr-x 2 alice developers 4096 Nov 7 09:30 ordner
lrwxrwxrwx 1 alice developers 15 Nov 7 08:00 link -> /pfad/zu/ziel
Spalten:
- 1. Zeichen: Typ (
-= Datei,d= Verzeichnis,l= Link) - 2-10: Rechte (rwx für User, Group, Others)
- Zahl: Anzahl Hardlinks
- User: Eigentümer
- Group: Gruppe
- Größe: in Bytes
- Datum/Zeit: letzte Änderung
- Name: Dateiname
Menschenlesbare Größen (-h)
ls -lh
Beispielausgabe:
-rw-r--r-- 1 user staff 12K Nov 7 10:00 file.txt
-rw-r--r-- 1 user staff 1.2M Nov 7 09:30 big.dat
drwxr-xr-x 2 user staff 4.0K Nov 7 08:00 ordner
Größen werden in KB, MB, GB statt Bytes angezeigt.
Sortierung
Nach Name (Standard)
ls # Alphabetisch
ls -r # Umgekehrt
Nach Änderungsdatum
ls -lt # Neueste zuerst
ls -ltr # Älteste zuerst
Nach Größe
ls -lS # Größte zuerst
ls -lSr # Kleinste zuerst
Nach Erweiterung
ls -lX # Gruppiert nach Dateityp
Rekursive Auflistung
ls -R # Alle Unterverzeichnisse
ls -R /pfad # Ab bestimmtem Pfad
Nur bestimmte Dateien
Mit Wildcards
ls *.txt # Alle .txt Dateien
ls *.{jpg,png} # Alle .jpg und .png
ls file[0-9]* # file0, file1, file2, ...
Nur Verzeichnisse
ls -d */ # Nur Verzeichnisse
ls -ld */ # Mit Details
Nur Dateien (keine Verzeichnisse)
ls -p | grep -v /
Farben
ls --color=auto # Farbige Ausgabe
ls --color=never # Ohne Farben
ls --color=always # Immer Farben (auch in Pipes)
Typische Farben:
- Blau: Verzeichnisse
- Grün: Ausführbare Dateien
- Cyan: Symbolische Links
- Rot: Archive
- Gelb: Devices
Spezielle Formate
Einzelne Spalte
ls -1 # Eine Datei pro Zeile
Komma-getrennt
ls -m # Komma-getrennte Liste
Mit Inode-Nummern
ls -i # Zeigt Inode-Nummern
Numerische UIDs/GIDs
ls -n # User/Group als Zahlen statt Namen
Dateigrößen analysieren
Größe einzelner Dateien
ls -lh datei.txt
Ausgabe:
-rw-r--r-- 1 user staff 12K Nov 7 10:00 datei.txt
Größe mit stat
Nur die Größe in Bytes:
stat -c%s datei.txt
Mit Dateiname:
stat -c "%s %n" *
Größe von Verzeichnissen
ls zeigt nur die Größe des Verzeichniseintrags (meist 4K), nicht den Inhalt!
Für echte Verzeichnisgröße nutze du:
du -sh ordner/ # Gesamtgröße
du -h --max-depth=1 # Größen aller Unterordner
Beispielausgabe:
200M ./Bilder
1.3G ./Videos
50K ./Dokumente
1.5G .
Mit 1000er-Schritten statt 1024er:
du -h --si --max-depth=1
Nach Größe sortiert
du -sh * | sort -h # Alle Dateien/Ordner sortiert
ls -lhS # Nur Dateien, größte zuerst
Größte Dateien finden
Top 10 größte Dateien:
du -ah . | sort -rh | head -n 10
Mit IT-Know-How/Linux/BASH Basics/find:
find . -type f -exec du -h {} + | sort -rh | head -n 10
Speicherplatznutzung überwachen
Gesamter Speicherplatz:
df -h # Dateisysteme
df -h /home # Bestimmter Mountpoint
Zeitstempel
Änderungszeit (Standard)
ls -l # Zeigt mtime (modification time)
Zugriffszeit
ls -lu # Zeigt atime (access time)
Statusänderungszeit
ls -lc # Zeigt ctime (change time)
Mit vollständigem Zeitstempel
ls -l --time-style=full-iso
ls -l --time-style=long-iso
ls -l --time-style=iso
Praktische Kombinationen
Übersichtliche Dateiliste
ls -lhA # Details, lesbar, alle außer . und ..
ls -lhAtr # Dazu sortiert nach Datum, älteste zuerst
Schnelle Dateisuche
ls -la | grep datei # Suche in aktueller Liste
Nur Größen von Verzeichnissen
du -sh */ # Alle Unterverzeichnisse
Dateien nach Änderung heute
ls -lt | head # Neueste Dateien
Ausführbare Dateien finden
ls -l | grep '^-..x'
Große Dateien finden
ls -lhS | head -n 10 # Top 10 größte Dateien
Versteckte Dateien zählen
ls -A | wc -l
Nützliche Aliases
Setze in ~/.bashrc:
alias ll='ls -lhA'
alias la='ls -A'
alias l='ls -CF'
alias lt='ls -lhAtr'
alias lsize='ls -lhS'
Zusammen mit anderen Befehlen
Mit find
find . -name "*.log" -exec ls -lh {} \;
Mit grep
ls -la | grep "Nov 7" # Dateien von heute
ls -la | grep "^d" # Nur Verzeichnisse
Mit awk
ls -l | awk '{print $9, $5}' # Name und Größe
Mit xargs
ls *.txt | xargs rm # VORSICHT: Löscht alle .txt
Fehler vermeiden
Dateien mit Leerzeichen
# FALSCH
ls *.txt | xargs rm
# RICHTIG
find . -name "*.txt" -print0 | xargs -0 rm
Alias-Konflikte
Viele Systeme haben ls als Alias mit --color=auto definiert. Um den echten Befehl zu nutzen:
\ls # Umgeht Alias
command ls # Umgeht Alias
/bin/ls # Direkter Pfad
Siehe auch
- IT-Know-How/Linux/BASH Basics/find - Erweiterte Dateisuche mit Kriterien
- IT-Know-How/Linux/BASH Basics/grep - Ausgabe filtern
- IT-Know-How/Linux/BASH Basics/Dateiberechtigungen - Bedeutung der Rechtespalten
- IT-Know-How/Linux/BASH Basics/lsblk - Block-Geräte statt Dateien
- du - Detaillierte Größenanalyse