Sie sind auf Seite 1von 2

Datenstrukturen und Betriebssysteme

Laborator 13
9.1.2024

Metazeichen (Wildcards) zur Expansion von Dateinamen

Man kann damit mehrere Dateien auf einmal bezeichnen. Das kann hilfreich sein wenn man
zum Beispiel alle Dateien, die mit Hausaufgabe anfangen löschen möchte. Ein Wildcard
bezeichnet einen oder mehrere Zeichen (Buchstaben oder Zahlen oder andere Zeichen).

Ausblick: Man kann mit Hilfe von Wildcards auch in eine Menge Dateien (alle Dateien in
einem Verzeichnis, oder die bestimmte Eigenschaften erfüllen) nach einem bestimmten Text
durchsuchen (zum Beispiel alle Konfigurationsdateien, die IP-Adressen in einem
bestimmten Bereich enthalten. Das ist hilfreich, wenn man einem VLAN (einem
Netzbereich) neue IP-Adressen geben möchte und deshalb alle Konfigurationsdateien finden
möchte wo dieser Bereich erscheint, und das gerne automatisch tun würde unter den vielen
Hunderten Konfigurationsdateien).

Um im aktuellen Verzeichnis eine Datei mit einem bestimmten Namen zu erstellen kann
man den Befehl touch benutzen:

touch abc.def

erstellt eine Datei, die abc.def heißt.

Bedeutungen (je 1 Punkt für je 2 Beispiele für jedes Metazeichen/Wildcard):


* : 0 oder mehrere beliebige Zeichen Beispiel: $ls m* (alle Dateien die mit m anfangen)
oder ls *.*
? : ein beliebiges Zeichen z.B.: $ ls ?i* (alles was als zweites Zeichen i hat)

[]: Range/Menge von Zeichen: [at]: bezeichnet Zeichen a oder Zeichen t [0-7] bezeichnet
eine Ziffer zwischen 0 und 7.
Beispiele:
ls *[0-7]* alle Dateien die ein Ziffer zwischen 0 und 7 enthalten
ls [ac]* alle Dateien die mit a oder c anfangen
ls [a-d] alle Dateien die a, b, c oder d heißen.

(innerhalb eines Range) ^ : jedes Zeichen das nicht das Zeichen das gleich nach ^ kommt
ist.

ls [^L]* alle Dateien die nicht mit L anfangen


[^a-p]* alle Dateien die nicht mit einem kleinen Buchstaben zwischen a und p anfangen

Um Dateien aus einem Verzeichnis in ein anderes Verzeichnis zu bewegen kann man den
Befehl mv benutzen (mv von move):

mv alterDateiname neuerDateiname bennennt eine Datei aus dem aktuellen Verzeichnis


(Datei bleibt im Verzeichnis)
mv Dateiname neuesVerzeichnis versetzt die Datei Dateiname in neuesVerzeichnis
Bei den Aufgaben prüft bitte immer die erfolgreiche Ausführung der Befehle. Dafür
soll eine adequate Situation für das Testen der Befehle erstellt werden.

Aufgabe 1: Schreiben Sie Befehle die Folgendes auflisten:

(a) alle Dateien deren Namen aus 3 Buchstaben bestehen ausgeben


(b) alle Dateien deren Namen mit x anfangen und insgesamt 4 Buchstaben haben
(c) alle Dateien deren Namen mit einer Ziffer anfangen und mit einer Ziffer enden
(d) alle Dateien, deren Namen nicht mit einem kleinen Buchstaben anfangen

und testen Sie diese Befehle (erstellen Sie eine adequate Situation, in der diese Befehle
getestet werden können).

Aufgabe 2:
Schreiben Sie Befehle, die folgende Dateien löschen (Befehl rm von remove):
a) alle Dateien, die als zweites Zeichen a haben.
b) alle Dateien, die mit .txt enden

Aufgabe 3:
Erstellen Sie ein Verzeichnis (im aktuellen Verzeichnis) und versetzen (a muta, bewegen)
Sie mit einem Befehl, alle Dateien, deren Namen insgesamt 7 Zeichen hat und die mit .doc
enden in dieses Verzeichnis.

(Man kann ls vorher und nachher im aktuellen Verzeichnis und im erstellten Verzeichnis
aufrufen um den Effekt zu prüfen)

Das könnte Ihnen auch gefallen