Jokerzeichen/Wildcard: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =Was ist das?= | + | = Was ist das? = |
| − | * Bash verwendet den Asterisk | + | * Bash verwendet den Asterisk '''*''' als Platzhalter für beliebige Zeichen oder Zeichenfolgen in Dateinamen oder Verzeichnispfaden. |
| − | * Die Wildcard | + | * 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 = | = Einführung = | ||
| − | + | * '''mkdir test''' | |
| − | * mkdir test | + | * '''cd test/''' |
| − | * cd test/ | + | * '''touch a ab abc abcd b cd efg haij''' |
| − | * touch a ab abc | ||
= Ein * steht für jedes Zeichen beliebig oft = | = Ein * steht für jedes Zeichen beliebig oft = | ||
| − | * ls * | + | * '''ls *''' |
| − | a ab abc abcd b cd efg haij | + | a ab abc abcd b cd efg haij |
| − | * ls ab* | + | * '''ls ab*''' |
ab abc abcd | ab abc abcd | ||
= Ein ? steht genau für ein Zeichen = | = 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]''' | |
| − | = Eine [] steht genau für ein Zeichen das in der Klammer ist = | ||
| − | |||
| − | * ls [ab] | ||
a b | a b | ||
| − | * ls [abc]? | + | * '''ls [abc]?''' |
ab cd | ab cd | ||
| − | = Eine [!] steht genau für ein Zeichen das nicht in der Klammer ist = | + | = Eine [!] steht genau für ein Zeichen, das nicht in der Klammer ist = |
| − | + | * '''ls [!abc]*''' | |
| − | * ls [!abc]* | ||
efg haij | efg haij | ||
| − | = Mit | + | = 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 „dir1“ angelegt | + | mkdir: Verzeichnis „dir3“ angelegt |
| − | mkdir: Verzeichnis „dir2“ angelegt | + | mkdir: Verzeichnis „dir4“ angelegt |
| − | mkdir: Verzeichnis „dir3“ angelegt | + | mkdir: Verzeichnis „dir5“ angelegt |
| − | mkdir: Verzeichnis „dir4“ angelegt | ||
| − | mkdir: Verzeichnis „dir5“ angelegt | ||
mkdir: Verzeichnis „dir6“ angelegt | mkdir: Verzeichnis „dir6“ angelegt | ||
= Backup mit Dateinamengenerierung = | = Backup mit Dateinamengenerierung = | ||
| + | * '''cp -v xx{,.save}''' | ||
| − | + | = Wenn kein Treffer erfolgt, wird das Sonderzeichen eingesetzt = | |
| − | + | * '''rm -r *''' | |
| − | = Wenn kein Treffer erfolgt wird das Sonderzeichen eingesetzt = | + | * '''mkdir -v *''' |
| − | |||
| − | * rm -r * | ||
| − | * mkdir -v * | ||
mkdir: Verzeichnis „*“ angelegt | mkdir: Verzeichnis „*“ angelegt | ||
| − | * cd *t/*$ | + | * '''cd *t/*$''' |
= Entwerten kann man ein Sonderzeichen mit einem \ = | = Entwerten kann man ein Sonderzeichen mit einem \ = | ||
| − | + | * '''rm -rvi \*''' | |
| − | * rm -rvi \* | ||
rm: Verzeichnis „*“ entfernen? n | rm: Verzeichnis „*“ entfernen? n | ||
| Zeile 84: | Zeile 76: | ||
= Entwerten kann man mehrere Sonderzeichen mit '...' = | = Entwerten kann man mehrere Sonderzeichen mit '...' = | ||
| − | + | * '''rm -rvi '*' ''' | |
| − | * '''rm -rvi '*'''' | ||
rm: Verzeichnis „*“ entfernen? n | rm: Verzeichnis „*“ entfernen? n | ||
| Zeile 91: | Zeile 82: | ||
= Aufgaben = | = Aufgaben = | ||
| − | * | + | * Wie lautet der Befehl, um alle Dateien (keine Verzeichnisse notwendig) aus Ihrem Homeverzeichnis nach '''/tmp''' zu kopieren? |
| + | <!-- * '''cp ~/* /tmp''' --> | ||
| − | + | * Wie lautet der Befehl, um alle Dateien aus '''/etc''', die mit dem Buchstaben k anfangen, in Ihr Homeverzeichnis zu kopieren? | |
| + | <!-- * '''cp /etc/k* ~''' --> | ||
| + | |||
| + | * Erstellen Sie ein Verzeichnis '''~/joker''' und kopieren Sie alle Dateien aus '''/etc''', die genau 5 Zeichen lang sind, in das Verzeichnis. | ||
| + | <!-- * '''mkdir ~/joker''' --> | ||
| + | <!-- * '''cp /etc/????? ~/joker''' --> | ||
| + | |||
| + | * Wie lautet der Befehl, um alle Dateien, die mit einem m beginnen und genau 5 Zeichen lang sind, zu löschen? | ||
| + | <!-- * '''rm m????''' --> | ||
| + | |||
| + | * 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? | ||
| + | <!-- * '''cp m?*c ~/joker''' --> | ||
| + | |||
| + | * 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? | ||
| + | <!-- * '''cp [wz]???[!0123456789] ~/joker''' --> | ||
| + | |||
| + | * 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? | ||
| + | <!-- * '''rm {1,2,3,4,5,6,7,8,9,0}{1,2,3,4,5,6,7,8,9,0}sux''' --> | ||
| + | |||
| + | * Wie lautet der Befehl, um alle Dateien zu löschen, die nicht mit einem a oder b beginnen? | ||
| + | <!-- * '''rm [!ab]*''' --> | ||
| − | * [[ | + | * Wie lautet der Befehl, um alle Dateien, die aus 4 Ziffern bestehen, anzuzeigen? |
| + | <!-- * '''ls [0-9][0-9][0-9][0-9]''' --> | ||
Aktuelle Version vom 12. Oktober 2025, 19:21 Uhr
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?