Articles

So kopieren Sie Dateien und Verzeichnisse unter Linux

Das Kopieren von Dateien und Verzeichnissen ist eine der häufigsten Aufgaben, die Sie ausführen, wenn Sie an der Befehlszeile arbeiten. Es gibt mehrere Befehle zum Kopieren von Dateien unter Linux, wobei cp und rsync die am häufigsten verwendeten Werkzeuge sind.

Es ist üblich, den Befehl cp zum Kopieren von Dateien und rsync zum Kopieren von Verzeichnissen zu verwenden.

Um Dateien und Verzeichnisse kopieren zu können, benötigen Sie mindestens Leseberechtigungen für die Quelldatei und Schreibberechtigungen für das Zielverzeichnis.

Kopieren von Dateien mit dem Befehl cp #

Unter Linux- und Unix-Betriebssystemen wird der Befehl cpzum Kopieren von Dateien und Verzeichnissen verwendet.

Der einfachste Anwendungsfall ist das Kopieren einer Datei in das aktuelle Arbeitsverzeichnis. Um beispielsweise eine Datei mit dem Namen file.txt in eine Datei mit dem Namen file_backup.txt im aktuellen Verzeichnis zu kopieren, führen Sie den folgenden Befehl aus:

cp file.txt file_backup.txt

Wenn die Zieldatei existiert, wird sie überschrieben. Verwenden Sie die Option -i, um vor dem Überschreiben der Dateien eine Bestätigungsaufforderung zu erhalten.

cp -i file.txt file_backup.txt

Wenn Sie den Befehl cpzum Kopieren einer Datei verwenden, gehört die neue Datei standardmäßig dem Benutzer, der den Befehl ausführt. Verwenden Sie die Option -p, um den Dateimodus, den Besitz und die Zeitstempel beizubehalten:

cp -p file.txt file_backup.txt

Eine weitere Option, die nützlich sein kann, ist -v. Wenn Sie diese Option verwenden, gibt der Befehl Folgendes aus:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

Kopieren einer Datei in ein Verzeichnis #

Um eine Datei in ein Verzeichnis zu kopieren, geben Sie den absoluten oder 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 in das /backup Verzeichnis:

cp file.txt /backup

Wenn Sie nur den Verzeichnisnamen als Ziel angeben, hat 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 in das angegebene Verzeichnis als new_file.txt.

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.

Mit dem Befehl cp können Sie auch den Mustervergleich verwenden. Um beispielsweise alle .png -Dateien aus dem aktuellen Verzeichnis in das /backup -Verzeichnis zu kopieren, verwenden Sie:

cp *.png /backup

Verzeichnisse kopieren mit cp Command #

Um ein Verzeichnis einschließlich aller Dateien und Unterverzeichnisse zu kopieren, verwenden Sie die -R oder -r Option. Im folgenden Beispiel kopieren wir das Verzeichnis Pictures nach 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 vorhanden ist, werden das Quellverzeichnis selbst und sein Inhalt in das Zielverzeichnis kopiert. Um nur die Dateien und Unterverzeichnisse, aber nicht das Zielverzeichnis zu kopieren, verwenden Sie die Option -T:

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 die Option -R verwenden müssen.

Kopieren von Dateien und Verzeichnissen mit dem Befehl rsync #

rsync ist ein schnelles und vielseitiges Befehlszeilenprogramm, das Dateien und Verzeichnisse zwischen zwei Speicherorten synchronisiert. Es kann verwendet werden, um Dateien an lokale und Remote-Standorte 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 blockierte Geräte übertragen und symbolische Links, Änderungszeiten, Gruppen, Besitz und Berechtigungen beibehalten.

Um eine einzelne Datei von einem Speicherort an einen anderen zu kopieren, führen Sie den folgenden Befehl aus:

rsync -a file.txt file_backup.txt

Wenn die Zieldatei vorhanden ist, rsync überschreibt sie.

Der gleiche Befehl kann verwendet werden, um ein Verzeichnis zu kopieren:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync Ändern Sie 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, kopiert rsync das Quellverzeichnis in das Zielverzeichnis. Die sicherste Option ist immer, den abschließenden Schrägstrich / sowohl für das Ziel als auch für die Quelle einzufügen.

Um mehr über rsynczu erfahren, lesen Sie die folgenden Artikel:

  • Verwendung von Rsync für die lokale und Remote-Datenübertragung und -Synchronisierung
  • So schließen Sie Dateien und Verzeichnisse mit Rsync aus

Fazit #

Wir haben Ihnen gezeigt, wie Sie Dateien und Verzeichnisse in Linux- und Unix-basierten Systemen kopierencp und rsync Dienstprogramme.