ls - list

ls ist das Kommando um sich den Inhalt eines Ordners im Dateisystem anzeigen zu lassen.

Optionen

-aZeigt versteckte Dateien an
–colorFarbliche Ausgabe
-lZeige Dateirechte + Dateigröße in Bytes
-lhZeige in lesbarer Form
-RZeigt recursiv den gesamten Inhalt
-SNach Größe sortiert
-tNach Zeit sortiert
-cZeige Datum der letzten Änderung
-iZeige Inode an


Zeigt den Inhalt des Ordner user1 an

ls /home/user1


Zeigt detailiert den Inhalt des Ordners /etc an

ls -licah


Beispiele mit Wildcards

1. Stern (`*`) – Platzhalter für beliebig viele Zeichen
Zeigt alle Dateien mit der Endung `.txt` im aktuellen Verzeichnis an:

ls *.txt


Zeigt alle Dateien an, die mit `file` beginnen:

ls file*


Zeigt alle Dateien an, die irgendwo im Namen `data` enthalten:

ls *data*


2. Fragezeichen (`?`) – Platzhalter für genau ein Zeichen
Findet Dateien wie `file1.txt`, aber nicht `file10.txt`:

ls file?.txt


Findet Dateien wie `data_1.csv`, `data_A.csv`, aber nicht `data_10.csv`:

ls data_?.csv


3. Eckige Klammern (`[]`) – Platzhalter für bestimmte Zeichenmengen
Zeigt nur `file1.txt`, `file2.txt` oder `file3.txt`:

ls file[123].txt


Zeigt nur `filea.txt`, `fileb.txt`, `filec.txt`, aber nicht `filed.txt`:

ls file[a-c].txt


Findet `file1.txt` bis `file9.txt`, aber nicht `file10.txt`:

ls file[0-9].txt


4. Negation mit eckigen Klammern (`[^]`) – Alle außer bestimmte Zeichen
Zeigt alle `fileX.txt` Dateien außer `file1.txt`:

ls file[^1].txt


Zeigt alle `fileX.txt` Dateien außer denen, die auf einen Kleinbuchstaben enden:

ls file[^a-z].txt


5. Geschweifte Klammern (`{}`) – mehrere exakte Namen angeben
Listet genau diese drei Dateien auf, falls sie existieren:

ls {file1.txt,file2.txt,log.txt}


Zeigt alle `.jpg`- und `.png`-Dateien an:

ls {*.jpg,*.png}


6. Kombination mehrerer Wildcards
Findet Dateien wie `data_01.log`, `data_AB.log`, aber nicht `data_1.log`:

ls data_??.log


Findet `report_1.txt`, `report_2023.txt`, aber nicht `report_A.txt`:

ls report_[0-9]*.txt


Zeigt alle `.log`- und `.txt`-Dateien im Verzeichnis `/var/log`:

ls /var/log/*.{log,txt}


misc

charmening@charmening-nb:/tmp$ ls report_*
report_1.txt  report_2023.txt  report_2A.txt  report_3A.txt  report_3B.txt  report_4A.txt
charmening@charmening-nb:/tmp$ ls report_[0-9]*
report_1.txt  report_2023.txt
charmening@charmening-nb:/tmp$ ls report_2*
report_2023.txt  report_2A.txt
charmening@charmening-nb:/tmp$ ls report_[3,2]*
report_2023.txt  report_2A.txt  report_3A.txt
charmening@charmening-nb:/tmp$ ls report_[3,2]A*
report_2A.txt  report_3A.txt
charmening@charmening-nb:/tmp$ ls report_[3,2]A*
report_2A.txt  report_3A.txt
charmening@charmening-nb:/tmp$ ls report_[!3,2]A*
report_4A.txt