Einführung
Rsync ist ein nützliches Linux-Befehlszeilentool, das Dateien und Verzeichnisse synchronisiert und kopiert. Sie können das Tool verwenden, um Daten lokal zwischen Verzeichnissen und Laufwerken oder zwischen zwei Remote-Computern zu synchronisieren.
Die grundlegenden rsync-Befehle in Linux synchronisieren alles von einem von Ihnen angegebenen Ort. In vielen Sicherungsszenarien möchten Sie möglicherweise bestimmte Dateien, Verzeichnisse oder Dateitypen ausschließen.
Folgen Sie den Beispielen in dieser Anleitung, um zu erfahren, wie Sie Dateien oder Verzeichnisse mit rsync ausschließen. Wir listen die häufigsten Ausschluss-Anwendungsfälle auf, um Ihre tägliche rsync-Nutzung abzudecken.

Voraussetzungen
- Benutzer mit sudo oderroot Privilegien
- Zugriff auf ein Befehlszeilen-/Terminalfenster
- Rsync auf Ihrem System installiert
Funktionsweise der rsync-Ausschlussoption
Der --exclude
Option mit rsync
Der Befehl verwendet relative Pfade zum Quellverzeichnis. Hängen Sie --exclude
an Option zu rsync
Befehl, gefolgt vom relativen Pfad zu einem Verzeichnis oder einer Datei(en).
Die grundlegende Syntax für die rsync-Exclude-Option sieht so aus:
rsync [OPTIONS] --exclude 'file_or_directory' source/ destination/
Ersetzen Sie source/ mit dem Verzeichnisnamen, den Sie als Quelle für die Datenübertragung an einen anderen Ort verwenden möchten.
Ersetzen Sie Ziel/ mit dem Verzeichnisnamen, den rsync als Zielspeicherort für Ihre Daten verwendet. Wenn das Verzeichnis nicht existiert, erstellt rsync eines für Sie und überträgt die Dateien in dieses Verzeichnis.
Um Dateien an einem entfernten Ort zu sichern, folgen Sie unserer anderen Anleitung, um zu erfahren, wie Sie Dateien mit rsync über SSH kopieren oder übertragen.
Eine bestimmte Datei ausschließen
In den folgenden rsync-Ausschlussbeispielen verwenden wir -a
(archivieren ) und -v
(ausführlich ) Optionen (-av
). Das -a
Die Option synchronisiert Verzeichnisse rekursiv, während Berechtigungen, symbolische Links, Eigentümerschaft und Gruppeneinstellungen beibehalten werden. Das -v
flag ist optional und gibt den Fortschritt und Status des rsync-Befehls aus.
Um eine Datei auszuschließen, während der Inhalt eines Ordners mit rsync übertragen wird, geben Sie die Datei und den relativen Pfad an.
Zum Beispiel:
rsync -av --exclude 'testfile1.txt' sourcedir/ destinationdir/
Mit diesem Befehl können Sie die Dateien nach destinationdir kopieren von sourcedir aber schließen Sie testfile1.txt. aus

Wie Sie in der Ausgabe sehen können, testfile1.txt ist nicht auf der Liste.
Führen Sie dazu diesen Befehl aus:
sudo rm -rf destinationdir
Ein bestimmtes Verzeichnis ausschließen
Jetzt wissen Sie, wie Sie rsync --exclude
verwenden file verwenden Sie das Tool auf die gleiche Weise, um ein Verzeichnis auszuschließen.
Geben Sie ein Verzeichnis an, das Sie ausschließen möchten (anstelle eines Dateinamens):
rsync -av --exclude 'dir1' sourcedir/ destinationdir/

Dieser Befehl kopiert den Inhalt von sourcedir in Zielverzeichnis und dir1 ausgeschlossen , wie in der Ausgabe zu sehen.
Dateien oder Verzeichnisse basierend auf einem Muster ausschließen
Verwenden Sie ein Sternchen * (Wildcard) beim Definieren eines Datei- oder Verzeichnisnamens, um alles auszuschließen, was dem Muster entspricht.
Zum Ausschließen von Dateien, die mit beginnen testen , führen Sie diesen Befehl aus:
rsync -av --exclude 'test*' sourcedir/ destinationdir/
Alle Dateien und Verzeichnisse, die diesem Muster entsprechen, werden von der Übertragung ausgeschlossen.
Sie können den Platzhalter auch in ähnlicher Weise verwenden, um alle Verzeichnisse auszuschließen, die mit einem bestimmten Muster enden .
Führen Sie diesen Befehl aus, um alle Verzeichnisse auszuschließen, die mit der Nummer 3:
endenrsync -av --exclude '*3' sourcedir/ destinationdir/
Sie können ein Sternchen vor und nach einem Muster verwenden, um den --exclude
zusätzlich zu verfeinern Kriterium.
Einen bestimmten Dateityp ausschließen
Mit dem rsync-Tool können Sie bestimmte Dateitypen ausschließen beim Synchronisieren von Daten. Verwenden Sie ein Sternchen * gefolgt von der Erweiterung des Dateityps, den Sie ausschließen möchten.
Beispielsweise möchten Sie möglicherweise ein Verzeichnis sichern, das viele .iso enthält Dateien, die Sie nicht sichern müssen.
Um einen bestimmten Dateityp auszuschließen, in diesem Fall .iso , führen Sie diesen Befehl aus:
rsync -av --exclude '*.iso' sourcedir/ destinationdir/

Die Ausgabe zeigt, dass rsync .iso nicht übertragen hat Dateien. Wir haben den Inhalt des Quellverzeichnisses im Bild zum Vergleich hinzugefügt.
Dateien nach Größe ausschließen
Während Dateiübertragungen können Sie die minimale oder maximale Größe der Dateien angeben, die Sie ausschließen möchten. Wenn Ihr Quellverzeichnis viele große Dateien enthält, die Sie nicht sichern möchten, verwenden Sie --max-size=size_in_mb_or_gb
Möglichkeit. Ersetzen Sie size_in_mb_or_gb mit der gewünschten Größe.
Zum Beispiel um alle Dateien auszuschließen, die größer sind als 500 MB, führen Sie diesen Befehl aus:
rsync -av --max-size=500m sourcedir/ destinationdir/
Andererseits, um Dateien auszuschließen, die kleiner als eine bestimmte Größe sind verwenden Sie den --min-size=size_in_mb_or_gb
Option.
Sie möchten beispielsweise ein Verzeichnis mit Bildern übertragen, aber es gibt viele Thumbnail-Dateien. Wenn alle Ihre Bilder größer als 1 MB sind, können Sie alle Dateien ausschließen, die kleiner als diese Größe sind.
Führen Sie dazu diesen Befehl aus:
rsync -av --min-size=1m sourcedir/ destinationdir/

Nicht verwenden die --exclude
rsync-Option bei der Definition der minimalen oder maximalen Dateigröße.
Mehrere Dateien oder Verzeichnisse ausschließen
Fügen Sie mehrere --exclude
hinzu Optionen zum Ausschließen mehrerer Dateien oder Verzeichnisse. Sie können beliebige rsync --exclude
kombinieren Ordner und rsync --exclude
Datei(en) Befehle, um nur die Daten zu übertragen, die Sie benötigen. Jeder der zuvor besprochenen Befehle kann in einer Zeile verwendet werden.
Der folgende Befehl schließt alle Dateien mit der .txt aus Erweiterung sowie dir3 und dir4 Verzeichnisse:
rsync -av --exclude '*.txt' --exclude 'dir3' --exclude 'dir4' sourcedir/ destinationdir/
Sie können beliebig viele --exclude
hinzufügen Einträge nach Bedarf. Um den Befehl übersichtlich zu halten, können Sie Dateien und Verzeichnisse in --exclude
angeben Option mit geschweiften Klammern. Trennen Sie die Muster durch ein Komma.
Zum Beispiel können wir den obigen Befehl auf diese Weise verkürzen:
rsync -av --exclude={'*.txt','dir3','dir4'} sourcedir/ destinationdir/

Die Ausgabe zeigt, dass die aufgelisteten Dateien und Verzeichnisse von der Übertragung ausgeschlossen sind.
Dateien und Verzeichnisse von einer Liste ausschließen
Wenn Sie eine große Anzahl unterschiedlicher Dateien und Verzeichnisse ausschließen müssen, können Sie rsync --exclude-from
verwenden Flagge. Erstellen Sie dazu eine Textdatei mit den Namen der Dateien und Verzeichnisse, die Sie ausschließen möchten. Übergeben Sie dann den Namen der Datei an --exlude-from
Option.
Der Befehl sieht folgendermaßen aus:
rsync -av --exclude-from={'list.txt'} sourcedir/ destinationdir/
Das rsync-Tool überspringt alle Dateien und Verzeichnisse, die Sie in der Datei auflisten. Sie können jedes Muster hinzufügen, das wir in dieser Anleitung verwendet haben.
Die Beispieldatei, die wir im obigen Befehl verwendet haben, enthält die folgenden Muster:
