Metazeichen
Auch Wildcards genannt sind: * ? [ ]   ! ^ ~ ; \Metazeichen werden von der Shell expandiert und das Resultat wird als Parameter an das aufgerufene Programm übergeben.Wichtig: Die Dateinamen-Expansion erfolgt vor dem Aufruf des Programmes!
Achtung für Regular Expression gelten andere Regeln
- * eine beliebige Zeichenkette (auch 0 Zeichen)
ls -l *.txt Die Shell erzeugt eine Liste aller Dateinamen im Verzeichnis, die mit .txt enden. Diese Liste wird als Parameterliste an das Kommando ls übergeben
- ? steht für ein beliebiges Einzelzeichen
- [ ] diese Klammern beinhalten eine Auswahlliste.
ls -l *_[123].php # listet alle PHP-Dateien die vor .php nur eine der angeführten Ziffern 1, 2 oder 3 haben
ls -l *_[1-3].php # dito aber hier wird ein Bereich verwendet ls -l [A-Z][a-z]*.txt # Muss mit Großbuchstabe beginnen. ls -l [g][a-z]*.php -rw-rw-r-- 1 detlef detlef 28595 14. Mai 2020 grep.php -rw-rw-r-- 1 detlef detlef 9354 16. Sep 10:32 grundlagen_2024_09_16.php -rw-r--r-- 1 detlef detlef 23514 18. Sep 11:16 grundlagen.php - ^ oder ! Verneinung einer Auswahlliste
Sie werden in Verbindung mit einer Auswahlliste verwendet ls -l *_[^1234].php # der Dateiname darf keine der Ziffern 1, 2, 3 oder 4 unmittelbar vor .php haben ls -l *_[!1-4].php dito aber hier als Bereich angegeben ls -l [g][a-z]*[!0-9_].php -rw-rw-r-- 1 detlef detlef 28595 14. Mai 2020 grep.php -rw-r--r-- 1 detlef detlef 23514 18. Sep 11:16 grundlagen.php Durch den verneinten Bereich [!0-9_] fällt die Datei grundlagen_2024_09_16.php aus dem Raster.
- ~ tilde steht für das Heimatverzeichnis
cd ~ # geht in das HOME-Verzeichnis des Users ls ~otto/bin # listet das bin Verzeichnis des Users otto
- \ Hebt die Sonderbedeutung des nachfolgenden Zeichens auf
ls -l abc\*.txt # Hier wird der * als normales Zeichen behandelt Es nur die Datei abc*.txt angezeigt.
Dateinamen-Expansion
Sie werden von der Shell
und auch von verschiedenen Programmen interpretiert.
I.d.R. werden sie fast gleich behandelt.
ls tag_?.txt nach tag_ darf nur ein einzelnes Zeichen vor dem nachfolgenden . stehen. Nur diese Dateinamen werden aufgelistet