Vor einiger Zeit haben wir darüber gesprochen, wie man Dateien bestimmter Größe vom Kopieren ausschließt mit rsync in Unix-ähnlichen Systemen. Diese Methode hat uns geholfen, die großen oder weniger wichtigen Dateien auszuschließen, um den Kopiervorgang so schnell wie möglich abzuschließen. So können wir die restlichen Dateien später kopieren, wenn wir Freizeit haben. Heute werden wir in dieser kurzen Anleitung sehen, wie man bestimmte Verzeichnisse vom Kopieren mit Rsync ausschließt und cp Befehle unter Linux.
Bestimmte Verzeichnisse vom Kopieren unter Linux ausschließen
Es könnte viele Möglichkeiten geben, diese Aufgabe zu erledigen. Mir sind folgende zwei Methoden bekannt.
Methode 1 – mit rsync Befehl
Wie Sie vielleicht bereits wissen, ist Rsync ein schnelles und vielseitiges Tool zum lokalen Kopieren von Dateien und Ordnern oder zu/von einem anderen Host über eine Remote-Shell oder zu/von einem Remote-rsync-Daemon. Rsync hat viele nützliche Optionen. Eine der nützlichen Optionen ist --exclude . Verwendung von ausschließen Option können wir bestimmte Dateien/Verzeichnisse vom Kopieren ausschließen. Lassen Sie uns anhand eines Beispiels sehen, wie das geht.
Nehmen wir an, Sie haben einen Ordner namens ostechnix . Innerhalb des Verzeichnisses ostechnix gibt es drei Unterverzeichnisse, nämlich dir1 , dir2 und dir3 .
$ ls ostechnix/ dir1 dir2 dir3
Sie möchten dir1 kopieren und dir3 an einen anderen Ort, aber nicht dir2 . Wie? Hier kommt rsync ins Spiel.
Um ein bestimmtes Verzeichnis vom Kopieren mit dem Befehl rsync auszuschließen, führen Sie einfach Folgendes aus:
$ rsync -av --progress ostechnix/ backup/ --exclude dir2
Beispielausgabe wäre:
sending incremental file list ./ dir1/ dir1/file1.pdf 6,152,611 100% 58.36MB/s 0:00:00 (xfr#1, to-chk=7/11) dir1/file2 2,597,261 100% 14.83MB/s 0:00:00 (xfr#2, to-chk=6/11) dir1/file3.doc 88,143 100% 470.37kB/s 0:00:00 (xfr#3, to-chk=5/11) dir1/file4.txt 66,374 100% 330.71kB/s 0:00:00 (xfr#4, to-chk=4/11) dir3/ dir3/file1.pdf 6,152,611 100% 18.39MB/s 0:00:00 (xfr#5, to-chk=3/11) dir3/file2 2,597,261 100% 6.68MB/s 0:00:00 (xfr#6, to-chk=2/11) dir3/file3.doc 88,143 100% 224.16kB/s 0:00:00 (xfr#7, to-chk=1/11) dir3/file4.txt 66,374 100% 164.10kB/s 0:00:00 (xfr#8, to-chk=0/11) sent 17,813,759 bytes received 187 bytes 11,875,964.00 bytes/sec total size is 17,808,778 speedup is 1.00
Der obige Befehl kopiert den gesamten Inhalt des Ordners ostechnix in einen Ordner namens backup , und es schließt das Verzeichnis dir2 aus vor dem Kopieren.
Alternativ können Sie denselben Befehl wie unten verwenden.
$ rsync -av --progress --exclude="folder_to_exclude" source_dirctory dest_directory
Beispiel:
$ rsync -av --progress --exclude="dir2" ostechnix/ backup/
Es ist tatsächlich eine gute Idee, einige große oder weniger wichtige Verzeichnisse vom Kopieren auszulassen oder auszuschließen, während Sie Ihr System mit rsync sichern, um Zeit zu sparen.
Weitere Einzelheiten finden Sie in den Manpages.
$ man rsync
Lesen Sie auch:
- So übertragen Sie schnell große Dateien über das Netzwerk unter Linux und Unix
- So finden Sie die Größe eines Verzeichnisses in Linux über die Befehlszeile
Methode 2 - Verwendung von cp Befehl
Wir können auch cp verwenden Befehl zum Kopieren von Ordnern von einem Ort zum anderen, mit Ausnahme bestimmter Verzeichnisse.
Gehen Sie in Ihr Quellverzeichnis, in unserem Fall ostechnix.
$ cd ostechnix/
Und führen Sie den folgenden Befehl aus:
$ cp -r `ls -A | grep -v "dir2"` /home/sk/backup/
Der obige Befehl kopiert alle Inhalte des aktuellen Ordners ostechnix außer dem Unterverzeichnis dir2 und speichert sie unter /home/sk/backup/ Verzeichnis.
Noch einfacher können wir dies wie folgt machen.
$ cp -r !(dir2) /home/sk/backup/
Weitere Einzelheiten finden Sie in den Manpages.
$ man cp