Files
2026-09-02 16:32:50 +02:00

391 lines
6.3 KiB
Markdown

# ls - Dateien und Verzeichnisse auflisten
Der `ls`-Befehl listet Dateien und Verzeichnisse auf und zeigt deren Eigenschaften.
## Grundsyntax
```bash
ls [OPTIONEN] [PFAD...]
```
## Grundlegende Verwendung
### Einfache Auflistung
```bash
ls # Aktuelles Verzeichnis
ls /pfad/zum/ordner # Bestimmtes Verzeichnis
ls datei.txt # Einzelne Datei
```
### Versteckte Dateien anzeigen
```bash
ls -a # Alle Dateien (inkl. .dotfiles)
ls -A # Alle außer . und ..
```
## Detaillierte Ausgabe
### Long Format (-l)
```bash
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)
```bash
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)
```bash
ls # Alphabetisch
ls -r # Umgekehrt
```
### Nach Änderungsdatum
```bash
ls -lt # Neueste zuerst
ls -ltr # Älteste zuerst
```
### Nach Größe
```bash
ls -lS # Größte zuerst
ls -lSr # Kleinste zuerst
```
### Nach Erweiterung
```bash
ls -lX # Gruppiert nach Dateityp
```
## Rekursive Auflistung
```bash
ls -R # Alle Unterverzeichnisse
ls -R /pfad # Ab bestimmtem Pfad
```
## Nur bestimmte Dateien
### Mit Wildcards
```bash
ls *.txt # Alle .txt Dateien
ls *.{jpg,png} # Alle .jpg und .png
ls file[0-9]* # file0, file1, file2, ...
```
### Nur Verzeichnisse
```bash
ls -d */ # Nur Verzeichnisse
ls -ld */ # Mit Details
```
### Nur Dateien (keine Verzeichnisse)
```bash
ls -p | grep -v /
```
## Farben
```bash
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
```bash
ls -1 # Eine Datei pro Zeile
```
### Komma-getrennt
```bash
ls -m # Komma-getrennte Liste
```
### Mit Inode-Nummern
```bash
ls -i # Zeigt Inode-Nummern
```
### Numerische UIDs/GIDs
```bash
ls -n # User/Group als Zahlen statt Namen
```
## Dateigrößen analysieren
### Größe einzelner Dateien
```bash
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:
```bash
stat -c%s datei.txt
```
Mit Dateiname:
```bash
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`:
```bash
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:
```bash
du -h --si --max-depth=1
```
### Nach Größe sortiert
```bash
du -sh * | sort -h # Alle Dateien/Ordner sortiert
ls -lhS # Nur Dateien, größte zuerst
```
### Größte Dateien finden
Top 10 größte Dateien:
```bash
du -ah . | sort -rh | head -n 10
```
Mit [[IT-Know-How/Linux/BASH Basics/find]]:
```bash
find . -type f -exec du -h {} + | sort -rh | head -n 10
```
### Speicherplatznutzung überwachen
Gesamter Speicherplatz:
```bash
df -h # Dateisysteme
df -h /home # Bestimmter Mountpoint
```
## Zeitstempel
### Änderungszeit (Standard)
```bash
ls -l # Zeigt mtime (modification time)
```
### Zugriffszeit
```bash
ls -lu # Zeigt atime (access time)
```
### Statusänderungszeit
```bash
ls -lc # Zeigt ctime (change time)
```
### Mit vollständigem Zeitstempel
```bash
ls -l --time-style=full-iso
ls -l --time-style=long-iso
ls -l --time-style=iso
```
## Praktische Kombinationen
### Übersichtliche Dateiliste
```bash
ls -lhA # Details, lesbar, alle außer . und ..
ls -lhAtr # Dazu sortiert nach Datum, älteste zuerst
```
### Schnelle Dateisuche
```bash
ls -la | grep datei # Suche in aktueller Liste
```
### Nur Größen von Verzeichnissen
```bash
du -sh */ # Alle Unterverzeichnisse
```
### Dateien nach Änderung heute
```bash
ls -lt | head # Neueste Dateien
```
### Ausführbare Dateien finden
```bash
ls -l | grep '^-..x'
```
### Große Dateien finden
```bash
ls -lhS | head -n 10 # Top 10 größte Dateien
```
### Versteckte Dateien zählen
```bash
ls -A | wc -l
```
## Nützliche Aliases
Setze in `~/.bashrc`:
```bash
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
```bash
find . -name "*.log" -exec ls -lh {} \;
```
### Mit grep
```bash
ls -la | grep "Nov 7" # Dateien von heute
ls -la | grep "^d" # Nur Verzeichnisse
```
### Mit awk
```bash
ls -l | awk '{print $9, $5}' # Name und Größe
```
### Mit xargs
```bash
ls *.txt | xargs rm # VORSICHT: Löscht alle .txt
```
## Fehler vermeiden
### Dateien mit Leerzeichen
```bash
# 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:
```bash
\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