Das Kopieren von Dateien und Verzeichnissen ist eine der häufigsten Aufgaben, die Sie bei der Arbeit an der Befehlszeile ausführen. Es gibt mehrere Befehle zum Kopieren von Dateien unter Linux mit cp
und rsync
sind die am weitesten verbreiteten Tools.
Es ist üblich, den cp
zu verwenden Befehl zum Kopieren von Dateien und rsync
um Verzeichnisse zu kopieren.
Um Dateien und Verzeichnisse kopieren zu können, müssen Sie mindestens Leserechte auf die Quelldatei und Schreibrechte auf das Zielverzeichnis haben.
Kopieren von Dateien mit dem cp
Befehl #
Auf Linux- und Unix-Betriebssystemen ist der cp
Befehl wird zum Kopieren von Dateien und Verzeichnissen verwendet.
Der einfachste Anwendungsfall ist das Kopieren einer Datei in das aktuelle Arbeitsverzeichnis. Zum Beispiel, um eine Datei mit dem Namen file.txt
zu kopieren in eine Datei namens file_backup.txt
im aktuellen Verzeichnis würden Sie den folgenden Befehl ausführen:
cp file.txt file_backup.txt
Wenn die Zieldatei vorhanden ist, wird sie überschrieben. Um vor dem Überschreiben der Dateien eine Sicherheitsabfrage zu erhalten, verwenden Sie das -i
Option.
cp -i file.txt file_backup.txt
Standardmäßig bei Verwendung des cp
Befehl zum Kopieren einer Datei, gehört die neue Datei dem Benutzer, der den Befehl ausführt. Verwenden Sie das -p
Option zum Beibehalten des Dateimodus, des Eigentums und der Zeitstempel:
cp -p file.txt file_backup.txt
Eine weitere nützliche Option ist -v
. Wenn Sie diese Option verwenden, gibt der Befehl aus, was gerade getan wird:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
Kopiert eine Datei in ein Verzeichnis #
Um eine Datei in ein Verzeichnis zu kopieren, geben Sie den absoluten oder den relativen Pfad zum Verzeichnis an. Wenn das Zielverzeichnis weggelassen wird, wird die Datei in das aktuelle Verzeichnis kopiert.
Im folgenden Beispiel kopieren wir die Datei file.txt
nach /backup
Verzeichnis:
cp file.txt /backup
Wenn Sie nur den Verzeichnisnamen als Ziel angeben, erhält die kopierte Datei denselben Namen wie die Originaldatei.
Wenn Sie die Datei unter einem anderen Namen kopieren möchten, müssen Sie den gewünschten Dateinamen angeben:
cp file.txt /backup/new_file.txt
Der obige Befehl kopiert die Datei als new_file.txt
in das angegebene Verzeichnis .
Mehrere Dateien kopieren #
Um mehrere Dateien und Verzeichnisse gleichzeitig zu kopieren, geben Sie die Namen der Quelldateien und -verzeichnisse gefolgt vom Zielverzeichnis als letztes Argument an:
cp file.txt dir file1.txt file2.txt dir1
Beim Kopieren mehrerer Dateien muss das Ziel ein Verzeichnis sein.
Der cp
Mit dem Befehl können Sie auch den Musterabgleich verwenden. Zum Beispiel, um alle .png
zu kopieren Dateien aus dem aktuellen Verzeichnis in das Verzeichnis /backup
Verzeichnis würden Sie verwenden:
cp *.png /backup
Kopieren von Verzeichnissen mit cp
Befehl #
Um ein Verzeichnis einschließlich aller seiner Dateien und Unterverzeichnisse zu kopieren, verwenden Sie das -R
oder -r
Möglichkeit. Im folgenden Beispiel kopieren wir das Verzeichnis Pictures
zu Pictures_backup
:
cp -R Pictures Pictures_backup
Der obige Befehl erstellt das Zielverzeichnis und kopiert rekursiv alle Dateien und Unterverzeichnisse von der Quelle in das Zielverzeichnis.
Wenn das Zielverzeichnis bereits existiert, wird das Quellverzeichnis selbst und sein Inhalt in das Zielverzeichnis kopiert. Um nur die Dateien und Unterverzeichnisse, aber nicht das Zielverzeichnis zu kopieren, verwenden Sie das -T
Möglichkeit:
cp -RT Pictures Pictures_backup
Die beim Kopieren von Dateien verwendeten Optionen können auch beim Kopieren von Verzeichnissen verwendet werden. Der Hauptunterschied besteht darin, dass Sie beim Kopieren von Verzeichnissen das -R
verwenden müssen Option.
Kopieren von Dateien und Verzeichnissen mit dem rsync
Befehl #
rsync
ist ein schnelles und vielseitiges Befehlszeilenprogramm, das Dateien und Verzeichnisse zwischen zwei Standorten synchronisiert. Es kann verwendet werden, um Dateien an lokale und entfernte Speicherorte zu kopieren.
rsync
enthält viele Optionen, die jeden Aspekt seines Verhaltens steuern
Die nützlichste Option ist -a
die Verzeichnisse rekursiv kopieren, spezielle und blockierende Geräte übertragen und symbolische Links, Änderungszeiten, Gruppen, Eigentumsrechte und Berechtigungen beibehalten.
Um eine einzelne Datei von einem an einen anderen Ort zu kopieren, würden Sie den folgenden Befehl ausführen:
rsync -a file.txt file_backup.txt
Wenn die Zieldatei existiert, rsync
wird es überschreiben.
Derselbe Befehl kann zum Kopieren eines Verzeichnisses verwendet werden:
rsync -a /var/www/public_html/ /var/www/public_html_backup/
rsync
bedroht die Quellverzeichnisse, die mit einem abschließenden Schrägstrich /
enden anders. Wenn Sie dem Quellverzeichnis einen abschließenden Schrägstrich hinzufügen, kopiert der Befehl nur den Inhalt des Quellverzeichnisses in das Zielverzeichnis. Wenn der abschließende Schrägstrich weggelassen wird, rsync
kopiert das Quellverzeichnis in das Zielverzeichnis. Am sichersten ist immer der abschließende Schrägstrich /
sowohl auf dem Ziel als auch auf der Quelle.
Um mehr über rsync
zu erfahren Überprüfen Sie die folgenden Artikel:
- So verwenden Sie Rsync für die lokale und entfernte Datenübertragung und -synchronisierung
- So schließen Sie Dateien und Verzeichnisse mit Rsync aus
Schlussfolgerung #
Wir haben Ihnen gezeigt, wie Sie Dateien und Verzeichnisse in Linux- und Unix-basierten Systemen mit dem cp
kopieren und rsync
Dienstprogramme.
Wenn Sie Fragen haben, hinterlassen Sie bitte unten einen Kommentar.