====== ls - list ======
ls ist das Kommando um sich den Inhalt eines Ordners im Dateisystem anzeigen zu lassen.
\\ \\
**__Optionen__**
|-a|Zeigt versteckte Dateien an|
|--color|Farbliche Ausgabe|
|-l|Zeige Dateirechte + Dateigröße in Bytes|
|-lh|Zeige in lesbarer Form|
|-R|Zeigt recursiv den gesamten Inhalt|
|-S|Nach Größe sortiert|
|-t|Nach Zeit sortiert|
|-c|Zeige Datum der letzten Änderung|
|-i|Zeige 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