Wildcards: Unterschied zwischen den Versionen
Aus exmediawiki
C.heck (Diskussion | Beiträge) |
C.heck (Diskussion | Beiträge) |
||
Zeile 159: | Zeile 159: | ||
$ ls !(this_1) | $ ls !(this_1) | ||
this_2 this_3 this_14 this_155 this_x this_y | this_2 this_3 this_14 this_155 this_x this_y | ||
+ | |||
+ | [[Category:HowTo]] | ||
+ | [[Category:GNU/Linux]] | ||
+ | [[Category:Programmierung]] | ||
+ | [[Category:FLOSS]] | ||
+ | [[Category: Command Line]] |
Aktuelle Version vom 29. April 2019, 21:45 Uhr
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