Aktionen

Wildcards

Aus exmediawiki


um auf mehrere Objekte gleich zeitig zuzugreifen gibt es mehrere Möglichkeiten

z.B.:

Du hast die vier Dateien this that there here in deinem Ordner

$ ls
this that there here

der Befehl

$ rm this that there here

löscht alle vier Dateien in dem jeweiligen Verzeichnis


bei mehrern Dateien mit komplexen Zusammenhängen ist das aber viel zu viel tippen. Das benutzen von sogenannten "Wildcards" erleichtert dies:


Die "*"-Wildcard

  • liegen nur die vier Dateien im jeweiligen Ordner, so benutzt man die "*"-Wildcard:
$ rm *

aber Vorsicht! dieser Befehl löscht wirklich alle Dateien in diesem Ordner.


  • Es gibt noch weitere Möglichkeiten, z.B. die Verbindung mit den Anfangsbuchstaben der jeweiligen Dateien:
$ rm t*
ls
here

das t gilt hier als der Beginn einer Datei, das heißt, daß alle Dateien im jeweiligen Ordner mit t beginnen gelöscht werden und somit in unserem Fall hier nur noch die Datei here übrig bleibt.


würde man nun anstatt

$ rm t*

den Befehl:

$ rm h*

schreiben, dann:

ls
this that there

wird nur die mit h beginnende Datei here gelöscht


  • Der Stern"*" kann an jede beliebige stelle eingesetzt werden z.b.:
$ ls th*re
there

oder

$ ls *i*
this


  • und wenn man zum Beispiel alle .jpg-Dateien im Ordner löschen will, tippt man folgendes:
$ rm *.jpg 


  • hat man .jpg- und .jpeg- Dateinen im Ordner dann:
$ rm *.jp*g


  • und hat man .jpg- und .JPG- Dateien im Ordner liegen:
$ rm *.{jpg,JPG}


  • Dasselbe gilt natürlich auch für Verzeichnisse.

Um die Unterverzeichnisse Photos1 Photos2 und Photos3 zu löschen:

$ rm -r Photos*


  • Die "?"-Wildcard*

Die "?"-Wildcard ist so ähnlich wie der Stern"*". Der einzige Unterschied liegt darin das das Fragenzeichen ein Platzhalter für nur einen Buchstaben ist, wobei der Stern für x-beliebieg viele gelten kann.

$ ls 
this1 this2 this3 this14


$ ls this*
this1 this2 this3 this14


$ ls this?
this1 this2 this3


$ ls this??
this14


Die "[]"-Wildcard

Eckige Klammern gelten als Rahmen für eine Suchanfrage:

$ ls
this_1 this_2 this_3 this_14 this_155 this_x this_y


$ ls this_[1,2]
this_1 this_2


$ ls this_[3,x]
this_3 this_x


  • das Komma kann man auch ignorieren, da es sich sowieso immer nur um ein Zeichen für die Suchanfage handeln kann:
$ ls this_[3x]
this_3 this_x


  • Es ist auch möglich nach Zahlenbereichen oder nach dem abc zu suchen:
$ ls this_[1-3]
this_1 this_2 this_3
$ ls this_[v-z]
this_x this_y


  • oder kombiniert
$ ls this_[1-3,x,y]
this_1 this_2 this_3 this_x this_y


Umkehrung mit !

Durch das Ausrufezeichen ! kann man die Suchanfrage umkehren:


  • um alle Dateien, außer die Datei this_1 aufzulisten:
$ ls this_[!1]
this_2 this_3 this_14 this_155 this_x this_y 


  • oder:
$ ls !(this_1)
this_2 this_3 this_14 this_155 this_x this_y