Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
103.3 Lektion 2
Thema 101: Systemarchitektur
101.1 Hardwareeinstellungen ermitteln und konfigurieren
  • 101.1 Lektion 1
101.2 Das System starten
  • 101.2 Lektion 1
101.3 Runlevel wechseln und das System anhalten oder neu starten
  • 101.3 Lektion 1
Thema 102: Linux-Installation und -Paketverwaltung
102.1 Festplattenaufteilung planen
  • 102.1 Lektion 1
102.2 Einen Bootmanager installieren
  • 102.2 Lektion 1
102.3 Shared Libraries verwalten
  • 102.3 Lektion 1
102.4 Debian-Paketverwaltung verwenden
  • 102.4 Lektion 1
102.5 RPM und YUM-Paketverwaltung verwenden
  • 102.5 Lektion 1
102.6 Linux als Virtualisierungs-Gast
  • 102.6 Lektion 1
Thema 103: GNU- und Unix-Befehle
103.1 Auf der Befehlszeile arbeiten
  • 103.1 Lektion 1
  • 103.1 Lektion 2
103.2 Textströme mit Filtern verarbeiten
  • 103.2 Lektion 1
103.3 Grundlegende Dateiverwaltung
  • 103.3 Lektion 1
  • 103.3 Lektion 2
103.4 Ströme, Pipes und Umleitungen verwenden
  • 103.4 Lektion 1
  • 103.4 Lektion 2
103.5 Prozesse erzeugen, überwachen und beenden
  • 103.5 Lektion 1
  • 103.5 Lektion 2
103.6 Prozess-Ausführungsprioritäten ändern
  • 103.6 Lektion 1
103.7 Textdateien mit regulären Ausdrücken durchsuchen
  • 103.7 Lektion 1
  • 103.7 Lektion 2
103.8 Grundlegendes Editieren von Dateien
  • 103.8 Lektion 1
Thema 104: Geräte, Linux-Dateisysteme, Filesystem Hierarchy Standard
104.1 Partitionen und Dateisysteme anlegen
  • 104.1 Lektion 1
104.2 Die Integrität von Dateisystemen sichern
  • 104.2 Lektion 1
104.3 Das Mounten und Unmounten von Dateisystemen steuern
  • 104.3 Lektion 1
104.5 Dateizugriffsrechte und -eigentümerschaft verwalten
  • 104.5 Lektion 1
104.6 Symbolische und Hardlinks anlegen und ändern
  • 104.6 Lektion 1
104.7 Systemdateien finden und Dateien am richtigen Ort plazieren
  • 104.7 Lektion 1
How to get certified
  1. Thema 103: GNU- und Unix-Befehle
  2. 103.3 Grundlegende Dateiverwaltung
  3. 103.3 Lektion 2

103.3 Lektion 2

Zertifikat:

LPIC-1

Version:

5.0

Thema:

103 GNU- und Unix-Befehle

Lernziel:

103.3 Grundlegende Dateiverwaltung

Lektion:

2 von 2

Einführung

Wie man Dateien findet

Während der Benutzung Ihres Rechners, sammeln sich immer mehr und mehr Dateien an. Manchmal wird es schwierig, eine bestimmte Datei zu finden. Glücklicherweise bietet Linux die Funktion find zum schnellen Suchen und Auffinden von Dateien. find verwendet die folgende Syntax:

find START_PFAD OPTIONEN AUSDRUCK
START_PFAD

definiert das Verzeichnis, in dem die Suche beginnt.

OPTIONEN

steuert das Verhalten und fügt spezifische Kriterien hinzu, um den Suchprozess zu optimieren.

AUSDRUCK

definiert die Suchanfrage.

$ find . -name "myfile.txt"
./myfile.txt

Der Startpfad ist in diesem Fall das aktuelle Verzeichnis. Die Option -name gibt an, dass die Suche sich auf den Namen einer Datei bezieht. myfile.txt ist der Name der zu durchsuchenden Datei. Wenn Sie Datei Globbing verwenden, achten Sie darauf, den Ausdruck in Anführungszeichen zu setzen:

$ find /home/frank -name "*.png"
/home/frank/Pictures/logo.png
/home/frank/screenshot.png

Dieser Befehl findet alle Dateien, die mit .png enden, beginnend mit dem Verzeichnis /home/frank/ einschließlich aller Unterverzeichnisse. Falls die Verwendung des Sternchens (*) nicht bekannt ist, so kann dies in der vorangegangenen Lektion nachgelesen werden.

Verwendung von Kriterien zur Beschleunigung der Suche

Verwenden Sie find, um Dateien basierend auf Typ, Größe oder Zeit zu finden. Durch die Angabe einer oder mehrerer Optionen werden die gewünschten Ergebnisse in kürzester Zeit erzielt.

Optionen zum Suchen von Dateien basierend auf dem Dateityp:

-type f

Dateisuche.

-type d

Verzeichnissuche.

-type l

Suche nach symbolischen Links.

$ find . -type d -name "example"

Dieser Befehl findet alle Verzeichnisse im aktuellen Verzeichnis und darunter, die den Namen example innehaben.

Weitere Kriterien, welche mit find verwendet werden könnten, sind:

-name

führt eine Suche auf der Grundlage des Dateinamens durch.

-iname

sucht anhand des Namens, wobei die Schreibweise nicht beachtet wird (d.h. myFile entspricht ebenfalls MYFILE).

-not

gibt nur Ergebnisse zurück, welche nicht übereinstimmen.

-maxdepth N

durchsucht sowohl das aktuelle Verzeichnis als auch N Ebenen an Unterverzeichnissen.

Auffinden von Dateien nach Änderungszeit

find erlaubt auch das Filtern einer Verzeichnishierarchie basierend darauf, wann die Datei geändert wurde:

$ sudo find / -name "*.conf" -mtime 7
/etc/logrotate.conf

Dieser Befehl sucht nach allen Dateien im gesamten Dateisystem (der Startpfad ist das Wurzelverzeichnis, d.h. /), die mit den String .conf enden und in den letzten sieben Tagen geändert wurden. Um auf Verzeichnisse zuzugreifen, welche am Wurzelverzeichnis der Verzeichnisstruktur des Systems liegen, erfordert dieser Befehl erhöhte Privilegien durch die Verwendung von sudo. Das Argument, das an mtime übergeben wird, stellt die Anzahl der Tage seit der letzten Änderung der Datei dar.

Lokalisieren von Dateien nach Größe

find kann Dateien auch nach Größe lokalisieren. Folgend ein Beispiel für die Suche nach Dateien, welche größer als 2G sind und sich in /var befinden:

$ sudo find /var -size +2G
/var/lib/libvirt/images/debian10.qcow2
/var/lib/libvirt/images/rhel8.qcow2

Die Option -size zeigt Dateien an, deren Größe dem übergebenen Argument entsprechen. Einige Beispielargumente sind:

-size 100b

Dateien, die genau 100 Bytes groß sind.

-size +100k

Dateien, die größer als 100 Kilobyte sind.

-size -20M

Dateien kleiner 20 Megabyte.

-size +2G

Dateien größer 2 Gigabyte.

Note

Um leere Dateien zu finden, verwenden Sie: find . -size 0b oder find . -empty.

Einwirken auf das Suchergebnis

Sobald eine Suche durchgeführt wurde, ist es möglich, mit -exec eine Aktion mit den Ergebnissen durchzuführen:

$ find . -name "*.conf" -exec chmod 644 '{}' \;

Dies filtert jedes Objekt im aktuellen Verzeichnis (.) und darunter nach Dateinamen, die auf .conf enden, und führt dann den Befehl chmod 644 aus, um die Dateiberechtigungen für die Ergebnisse zu ändern.

Kümmern Sie sich vorerst nicht um die Bedeutung von '{}' \;, da dies später behandelt wird.

Verwendung von grep zum Filtern von Dateien auf Grundlage des Inhalts

grep wird verwendet, um nach dem Vorkommen eines Schlüsselwortes zu suchen.

Denken Sie an eine Situation, in der wir Dateien auf der Grundlage des Inhalts finden sollen:

$ find . -type f -exec grep "lpi" '{}' \; -print
./.bash_history
Alpine/M
helping/M

Dies würde jedes Objekt in der aktuellen Verzeichnishierarchie (.), das eine Datei (-type f) ist, durchsuchen und dann den Befehl grep "lpi" für jede Datei ausführen, welche die Bedingungen erfüllt. Die Dateien, die diese Bedingungen erfüllen, werden auf dem Bildschirm ausgegeben (-print). Die geschweiften Klammern ({}) sind ein Platzhalter für die Ergebnisse von find. Die {} werden in einfache Anführungszeichen (') eingeschlossen, um die Übergabe von Dateinamen an grep, welche Sonderzeichen enthalten, kompatibel zu halten. Das Kommando -exec wird mit einem Semikolon (;) abgeschlossen, welches entsprechend zu markieren ist (\;), um eine Interpretation durch die Shell zu vermeiden.

Das Hinzufügen der Option -delete am Ende eines Ausdrucks würde alle übereinstimmenden Dateien löschen. Diese Option sollte verwendet werden, wenn Sie sicher sind, dass die Ergebnisse nur mit den Dateien übereinstimmen, die Sie tatsächlich löschen möchten.

Im folgenden Beispiel findet find alle Dateien in der Hierarchie, die im aktuellen Verzeichnis beginnen, und löscht dann alle Dateien, die mit den String .bak enden:

$ find . -name "*.bak" -delete

Archivieren von Dateien

Der Befehl tar (Archivierung und Komprimierung)

Der Befehl tar, kurz für “tape archive(r)”, wird verwendet, um Archive im Format tar zu erstellen, indem eine Gruppe von Dateien in ein Archiv umgewandelt wird. Archive werden so erstellt, dass eine Gruppe von Dateien leicht verschoben oder gesichert werden kann. Stellen Sie sich tar als ein Werkzeug vor, das einen Klebstoff erzeugt, an den Dateien angehängt, gruppiert und leicht verschoben werden können.

tar hat auch die Fähigkeit, Archive vom Typ tar zu extrahieren, eine Liste der im Archiv enthaltenen Dateien anzuzeigen sowie zusätzliche Dateien zu einem bestehenden Archiv hinzuzufügen.

Die Syntax des Befehls tar lautet wie folgt:

tar [OPERATION_UND_OPTIONEN] [ARCHIV_NAME] [DATEI_NAME(N)]
OPERATION

Es ist stets nur ein Operationsargument erlaubt und erforderlich. Die am häufigsten verwendeten Operationen lauten:

--create (-c)

Erstellen eines neuen Archivs.

--extract (-x)

Entpacken eines Archivs oder einer oder mehrerer Dateien aus einem Archiv.

--list (-t)

Auflistung aller im Archiv enthaltenen Dateien.

OPTIONEN

Die am häufigsten verwendeten Optionen sind:

--verbose (-v)

Anzeigen des Verarbeitungsprozess des Befehls tar.

--file=archive-name (-f archive-name)

Gibt den Namen der Archivdatei an.

ARCHIV_NAME

Der Name des Archivs.

DATEI_NAME(N)

Eine durch Leerzeichen getrennte Liste von Dateinamen, welche aus dem Archiv extrahiert werden sollen. Wenn nicht angegeben, wird das gesamte Archiv extrahiert.

Anlegen eines Archivs

Nehmen wir an, wir haben ein Verzeichnis namens stuff im aktuellen Verzeichnis und wir wollen es in einer Datei namens archive.tar speichern. Wir würden den folgenden Befehl ausführen:

$ tar -cvf archive.tar stuff
stuff/
stuff/service.conf

Folgend, eine Beschreibung der genutzten Optionen:

-c

Erstellen eines Archiv.

-v

Anzeigen des Fortschritts im Terminal während der Erstellung des Archivs, auch bekannt als “verbose” Modus. Das -v ist in diesen Befehlen immer optional, aber hilfreich.

-f

Erlaubt die Angabe des Dateinamens des Archivs.

Im Allgemeinen verwenden wir zur Archivierung eines einzelnen Verzeichnisses oder einer einzelnen Datei unter Linux folgende Kommandostruktur:

tar -cvf NAME-DES-ARCHIVS.tar /PFAD/ZUM/ORDNER-ODER-DATEI
Note

tar arbeitet rekursiv. Es führt die erforderliche Aktion in jedem nachfolgenden Verzeichnis innerhalb des angegebenen Verzeichnisses aus.

Um mehrere Verzeichnisse auf einmal zu archivieren, listen wir alle Verzeichnisse auf, indem wir diese im Abschnitt /PFAD/ZUM/ORDNER-ODER-DATEI durch Leerzeichen abgrenzen:

$ tar -cvf archive.tar stuff1 stuff2

Dies würde ein Archiv von stuff1 und stuff2 mit dem Namen archive.tar erzeugen.

Entpacken eines Archivs

Wir können ein Archiv mit tar wie folgt extrahieren:

$ tar -xvf archive.tar
stuff/
stuff/service.conf

Dadurch wird der Inhalt von archive.tar in das aktuelle Verzeichnis extrahiert.

Dieser Befehl ist derselbe wie der oben verwendete Befehl zur Erstellung eines Archivs, mit Ausnahme der Option -x, der die Option -c ersetzt.

Um den Inhalt des Archivs in ein bestimmtes Verzeichnis zu extrahieren, verwenden wir -C:

$ tar -xvf archive.tar -C /tmp

Dadurch wird der Inhalt von archive.tar in das Verzeichnis /tmp extrahiert.

$ ls /tmp
stuff

Komprimieren mit tar

Der GNU Befehl tar, der in Linux-Distributionen enthalten ist, kann ein .tar Archiv erstellen und es dann mittels gzip oder bzip2 in einem einzigen Befehl komprimieren:

$ tar -czvf name-of-archive.tar.gz stuff

Dieser Befehl würde eine komprimierte Datei mittels des Algorithmus gzip (-z) erzeugen.

Während gzip am häufigsten verwendet wird, um .tar.gz oder .tgz Dateien zu erstellen, unterstützt tar auch bzip2. Dies erlaubt die Erstellung von bzip2 komprimierten Dateien, die oft als .tar.bz2, .tar.bz oder .tbz Dateien bezeichnet werden.

Zu diesem Zweck ersetzen wir -z für gzip durch -j für bzip2:

$ tar -cjvf name-of-archive.tar.bz stuff

Um die Datei zu dekomprimieren, ersetzen wir -c durch -x, wobei x für “extrahieren” steht:

$ tar -xzvf archive.tar.gz

gzip ist schneller, aber es komprimiert im Allgemeinen etwas weniger, so dass Sie eine etwas größere Datei erhalten. bzip2 ist langsamer, aber es komprimiert ein bisschen mehr, so dass Sie eine etwas kleinere Datei erhalten. Im Allgemeinen sind gzip und bzip2 jedoch praktisch dasselbe und beide funktionieren ähnlich.

Alternativ können wir gzip oder bzip2 anwenden, indem wir den gzip Befehl für gzip Kompressionen und den bzip Befehl für bzip Kompressionen verwenden. Um zum Beispiel gzip zu verwenden, benutzen wir:

gzip DATEI-ZUM-KOMPRIMIEREN
gzip

erzeugt die komprimierte Datei mit dem gleichen Namen, aber mit der Endung .gz.

gzip

entfernt die Originaldateien nach der Erstellung der komprimierten Datei.

Der Befehl bzip2 funktioniert auf ähnliche Weise.

Zum Entpacken der Dateien verwenden wir entweder gunzip oder bunzip2, je nachdem, welcher Algorithmus zum Komprimieren einer Datei verwendet wurde.

Der Befehl cpio

cpio steht für “copy in, copy out”. Es wird benutzt, um Archivdateien wie *.cpio oder *.tar Dateien zu verarbeiten.

cpio führt die folgenden Operationen durch:

  • Kopieren von Dateien in ein Archiv.

  • Extrahieren von Dateien aus einem Archiv.

Es übernimmt die Liste der Dateien von der Standardeingabe (meistens die Ausgabe von ls).

Um ein cpio Archiv zu erstellen, verwenden wir:

$ ls | cpio -o > archive.cpio

Die Option -o weist cpio an, eine Ausgabe zu erzeugen. In diesem Fall ist die erzeugte Ausgabedatei archive.cpio. Der Befehl ls listet den Inhalt des aktuellen Verzeichnisses auf, der archiviert werden soll.

Zum Extrahieren des Archivs verwenden wir:

$ cpio -id < archive.cpio

Die Option -i wird verwendet, um die Extraktion durchzuführen. Die Option -d erstellt den Zielordner. Das Zeichen < steht für die Standardeingabe. Die Eingabedatei, die extrahiert werden soll, ist archive.cpio.

Der Befehl dd

dd kopiert Daten von einem Ort zu einem anderen. Die Kommandozeilensyntax von dd unterscheidet sich von vielen anderen Unixprogrammen. Es benutzt die Syntax option=value für seine Kommandozeilenoptionen anstelle der GNU-Standardformate -option value oder --option=value:

$ dd if=oldfile of=newfile

Dieser Befehl würde den Inhalt von oldfile in newfile kopieren, wobei if= die Eingabedatei darstellt und of= sich auf die Ausgabedatei bezieht.

Note

Der Befehl dd gibt normalerweise nichts auf dem Bildschirm aus, bis der Befehl beendet ist. Mit der Option status=progress zeigt die Konsole an, wieviel Arbeit durch den Befehl erledigt wurde. Zum Beispiel: dd status=progress if=oldfile of=newfile.

dd wird auch verwendet, um Daten in Groß-/Kleinschreibung zu ändern oder direkt auf Blockgeräte wie /dev/sdb zu schreiben:

$ dd if=oldfile of=newfile conv=ucase

Dies würde den gesamten Inhalt von oldfile in newfile kopieren und den gesamten Text groß schreiben.

Der folgende Befehl sichert die gesamte Festplatte, die sich unter /dev/sda befindet, in eine Datei namens backup.dd:

$ dd if=/dev/sda of=backup.dd bs=4096

Geführte Übungen

  1. Betrachten Sie die folgende Auflistung:

    $ find /home/frank/Documents/ -type d
    /home/frank/Documents/
    /home/frank/Documents/animal
    /home/frank/Documents/animal/domestic
    /home/frank/Documents/animal/wild
    • Welche Art von Dateien würde dieser Befehl ausgeben?

    • In welchem Verzeichnis beginnt die Suche?

  2. Ein Benutzer möchte seinen Sicherungsordner komprimieren. Er verwendet das folgende Kommando:

    $ tar cvf /home/frank/backup.tar.gz /home/frank/dir1

    Welche Option fehlt, um die Sicherung mit dem gzip Algorithmus zu komprimieren?

Offene Übungen

  1. Als Systemadministrator ist es erforderlich, regelmäßige Prüfungen durchzuführen, um speicherintensive Dateien zu entfernen. Diese Dateien befinden sich in /var und enden mit der Erweiterung .backup.

    • Notieren Sie den erforderlichen Befehl und verwenden Sie find, um diese Dateien zu finden:

    • Eine Analyse der Größe dieser Dateien zeigt, dass sie von 100M bis 1000M reichen. Vervollständigen Sie den vorhergehenden Befehl mit diesen neuen Informationen, so dass Sie diese Sicherungsdateien im Bereich von 100M bis 1000M finden können:

    • Vervollständigen Sie schließlich diesen Befehl mit der Löschaktion, so dass diese Dateien entfernt werden:

  2. Im Verzeichnis /var gibt es vier Sicherungsdateien:

    db-jan-2018.backup
    db-feb-2018.backup
    db-march-2018.backup
    db-apr-2018.backup
    • Geben Sie mit tar den Befehl an, der eine Archivdatei mit dem Namen db-first-quarter-2018.backup.tar erstellen würde:

    • Geben Sie mit tar den Befehl an, der das Archiv erstellen und mittels gzip komprimieren würde. Beachten Sie, dass der resultierende Dateiname mit .gz enden sollte:

Zusammenfassung

In diesem Abschnitt haben Sie gelernt:

  • Wie man Dateien mit find findet.

  • Wie man Suchkriterien basierend für Zeit, Dateityp oder Dateigröße benutzt.

  • Wie man mit einem zurückgegebenen Resultat agiert.

  • Wie man Dateien mit tar archiviert, komprimiert und dekomprimiert.

  • Wie man Archive mittels cpio verarbeitet.

  • Wie mann Dateien mittels dd kopiert.

Lösungen zu den geführten Übungen

  1. Betrachten Sie die folgende Auflistung:

    $ find /home/frank/Documents/ -type d
    /home/frank/Documents/
    /home/frank/Documents/animal
    /home/frank/Documents/animal/domestic
    /home/frank/Documents/animal/wild
    • Welche Art von Dateien würde dieser Befehl ausgeben?

      Verzeichnisse.

    • In welchem Verzeichnis beginnt die Suche?

      /home/frank/Documents

  2. Ein Benutzer möchte seinen Sicherungsordner komprimieren. Er verwendet das folgende Kommando:

    $ tar cvf /home/frank/backup.tar.gz /home/frank/dir1

    Welche Option fehlt, um die Sicherung mit dem gzip Algorithmus zu komprimieren?

    Option -z.

Lösungen zu den offenen Übungen

  1. Als Systemadministrator ist es erforderlich, regelmäßige Prüfungen durchzuführen, um speicherintensive Dateien zu entfernen. Diese Dateien befinden sich in /var und enden mit der Erweiterung .backup.

    • Notieren Sie den erforderlichen Befehl und verwenden Sie find, um diese Dateien zu finden:

      $ find /var -name *.backup
    • Eine Analyse der Grösse dieser Dateien zeigt, dass sie von 100M bis 1000M reichen. Vervollständigen Sie den vorherigen Befehl mit diesen neuen Informationen, so dass Sie die Sicherungsdateien von 100M bis 1000M finden können:

      $ find /var -name *.backup -size +100M -size -1000M
    • Vervollständigen Sie schließlich diesen Befehl mit der Löschaktion, so dass diese Dateien entfernt werden:

      $ find /var -name *.backup -size +100M -size -1000M -delete
  2. Im Verzeichnis /var gibt es vier Sicherungsdateien:

    db-jan-2018.backup
    db-feb-2018.backup
    db-march-2018.backup
    db-apr-2018.backup
    • Geben Sie mit tar den Befehl an, der eine Archivdatei mit dem Namen db-first-quarter-2018.backup.tar erstellen würde:

      $ tar -cvf db-first-quarter-2018.backup.tar db-jan-2018.backup db-feb-2018.backup db-march-2018.backup db-apr-2018.backup
    • Geben Sie mit tar den Befehl an, der das Archiv erstellen und mittels gzip komprimieren würde. Beachten Sie, dass der resultierende Dateiname mit .gz enden sollte:

      $ tar -zcvf db-first-quarter-2018.backup.tar.gz db-jan-2018.backup db-feb-2018.backup db-march-2018.backup db-apr-2018.backup

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

103.4 Ströme, Pipes und Umleitungen verwenden (103.4 Lektion 1)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2023 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2023 The Linux Professional Institute Inc. Alle Rechte vorbehalten.