Jokerzeichen/Wildcard
Zur Navigation springen
Zur Suche springen
Was ist das?
- Bash verwendet den Asterisk * als Platzhalter für beliebige Zeichen oder Zeichenfolgen in Dateinamen oder Verzeichnispfaden.
- Die Wildcard * kann in Kombination mit anderen Zeichen verwendet werden, um gezielt nach bestimmten Dateien zu suchen oder Aktionen auf eine Gruppe von Dateien anzuwenden.
Einführung
- mkdir test
- cd test/
- touch a ab abc abcd b cd efg haij
Ein * steht für jedes Zeichen beliebig oft
- ls *
a ab abc abcd b cd efg haij
- ls ab*
ab abc abcd
Ein ? steht genau für ein Zeichen
- ls ?
a b
- ls ??
ab cd
- ls ???*
abc abcd efg haij
Eine [] steht genau für ein Zeichen, das in der Klammer ist
- ls [ab]
a b
- ls [abc]?
ab cd
Eine [!] steht genau für ein Zeichen, das nicht in der Klammer ist
- ls [!abc]*
efg haij
Mit {element1,element2} kann man Dateinamen generieren
- mkdir -v dir{1,2,3,4,5,6}
mkdir: Verzeichnis „dir1“ angelegt mkdir: Verzeichnis „dir2“ angelegt mkdir: Verzeichnis „dir3“ angelegt mkdir: Verzeichnis „dir4“ angelegt mkdir: Verzeichnis „dir5“ angelegt mkdir: Verzeichnis „dir6“ angelegt
Backup mit Dateinamengenerierung
- cp -v xx{,.save}
Wenn kein Treffer erfolgt, wird das Sonderzeichen eingesetzt
- rm -r *
- mkdir -v *
mkdir: Verzeichnis „*“ angelegt
- cd *t/*$
Entwerten kann man ein Sonderzeichen mit einem \
- rm -rvi \*
rm: Verzeichnis „*“ entfernen? n
Entwerten kann man mehrere Sonderzeichen mit "..."
- rm -rvi "*"
rm: Verzeichnis „*“ entfernen? n
Entwerten kann man mehrere Sonderzeichen mit '...'
- rm -rvi '*'
rm: Verzeichnis „*“ entfernen? n
Aufgaben
- Wie lautet der Befehl, um alle Dateien (keine Verzeichnisse notwendig) aus Ihrem Homeverzeichnis nach /tmp zu kopieren?
- Wie lautet der Befehl, um alle Dateien aus /etc, die mit dem Buchstaben k anfangen, in Ihr Homeverzeichnis zu kopieren?
- Erstellen Sie ein Verzeichnis ~/joker und kopieren Sie alle Dateien aus /etc, die genau 5 Zeichen lang sind, in das Verzeichnis.
- Wie lautet der Befehl, um alle Dateien, die mit einem m beginnen und genau 5 Zeichen lang sind, zu löschen?
- Wie lautet der Befehl, um alle Dateien, die mit einem m beginnen, mindestens 3 Zeichen lang sind und einem c enden, nach joker zu kopieren?
- Wie lautet der Befehl, um alle Dateien, die mit einem w oder z beginnen, genau 5 Zeichen lang sind und nicht mit einer Ziffer enden, nach joker zu kopieren?
- Geben Sie folgendes ein:
touch {1,2,3,4,5,6,7,8,9,0}{1,2,3,4,5,6,7,8,9,0}sux
- Wie kann man mit Hilfe der Wildcards diese Dateien wieder löschen?
- Wie lautet der Befehl, um alle Dateien zu löschen, die nicht mit einem a oder b beginnen?
- Wie lautet der Befehl, um alle Dateien, die aus 4 Ziffern bestehen, anzuzeigen?