Jokerzeichen/Wildcard: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(12 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Was ist das?=
+
= Was ist das? =
=Einführung=
+
* Bash verwendet den Asterisk '''*''' als Platzhalter für beliebige Zeichen oder Zeichenfolgen in Dateinamen oder Verzeichnispfaden.
*mkdir test
+
* 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.
*cd test/
+
 
*touch a ab abc abcd abcd b cd efg haij
+
= Einführung =
=Ein * steht für jedes Zeichen beliebig oft=  
+
* '''mkdir test'''
*ls *
+
* '''cd test/'''
  a  ab  abc  abcd b  cd  efg  haij
+
* '''touch a ab abc abcd b cd efg haij'''
*ls ab*
+
 
 +
= Ein * steht für jedes Zeichen beliebig oft =
 +
* '''ls *'''
 +
 
 +
  a  ab  abc  abcd b  cd  efg  haij
 +
 
 +
* '''ls ab*'''
 +
 
 
  ab  abc  abcd
 
  ab  abc  abcd
=Ein ? steht genau für ein Zeichen=  
+
 
*ls ?
+
= Ein ? steht genau für ein Zeichen =
a b
+
* '''ls ?'''
*ls ??
+
 
ab cd
 
*ls ???*
 
abc  abcd  efg haij
 
=Eine [] steht genau für ein Zeichen das in der Klammer ist=
 
*ls [ab]
 
 
  a  b
 
  a  b
*ls [abc]?
+
 
 +
* '''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
 
  ab  cd
=Eine [!] steht genau für ein Zeichen das nicht in der Klammer ist=
+
 
*ls [!abc]*
+
= Eine [!] steht genau für ein Zeichen, das nicht in der Klammer ist =
 +
* '''ls [!abc]*'''
 +
 
 
  efg  haij
 
  efg  haij
=Mit der {element1,element2} kann man Dateinamen generieren=
+
 
*mkdir -v dir{1,2,3,4,5,6}
+
= Mit {element1,element2} kann man Dateinamen generieren =
  mkdir: Verzeichnis „dir1“ angelegt
+
* '''mkdir -v dir{1,2,3,4,5,6}'''
  mkdir: Verzeichnis „dir2“ angelegt
+
 
  mkdir: Verzeichnis „dir3“ angelegt
+
  mkdir: Verzeichnis „dir1“ angelegt
  mkdir: Verzeichnis „dir4“ angelegt
+
  mkdir: Verzeichnis „dir2“ angelegt
  mkdir: Verzeichnis „dir5“ angelegt
+
  mkdir: Verzeichnis „dir3“ angelegt
 +
  mkdir: Verzeichnis „dir4“ angelegt
 +
  mkdir: Verzeichnis „dir5“ angelegt
 
  mkdir: Verzeichnis „dir6“ angelegt
 
  mkdir: Verzeichnis „dir6“ angelegt
=Backup mit Dateinamengenerierung=
+
 
cp -v xx{,.save}
+
= Backup mit Dateinamengenerierung =
=Wenn kein Treffer erfolgt wird das Sonderzeichen eingesetzt=
+
* '''cp -v xx{,.save}'''
*rm -r *
+
 
*mkdir -v *
+
= Wenn kein Treffer erfolgt, wird das Sonderzeichen eingesetzt =
 +
* '''rm -r *'''
 +
* '''mkdir -v *'''
 +
 
 
  mkdir: Verzeichnis „*“ angelegt
 
  mkdir: Verzeichnis „*“ angelegt
*cd *t/*$
+
 
=Entwerten kann man ein Sonderzeichen mit einem \=
+
* '''cd *t/*$'''
*rm -rvi \*
+
 
 +
= Entwerten kann man ein Sonderzeichen mit einem \ =
 +
* '''rm -rvi \*'''
 +
 
 
  rm: Verzeichnis „*“ entfernen? n
 
  rm: Verzeichnis „*“ entfernen? n
=Entwerten kann man mehrereSonderzeichen mit ""=
+
 
*rm -rvi "*"
+
= Entwerten kann man mehrere Sonderzeichen mit "..." =
 +
* '''rm -rvi "*"'''
 +
 
 
  rm: Verzeichnis „*“ entfernen? n
 
  rm: Verzeichnis „*“ entfernen? n
=Entwerten kann man mehrereSonderzeichen mit ''=
+
 
*rm -rvi '*'
+
= Entwerten kann man mehrere Sonderzeichen mit '...' =
 +
* '''rm -rvi '*' '''
 +
 
 
  rm: Verzeichnis „*“ entfernen? n
 
  rm: Verzeichnis „*“ entfernen? n
 +
 +
= 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?