Kopieren von Dateien und Verzeichnissen unter Linux

In diesem Handbuch erfahren Sie, wie Sie Dateien und Verzeichnisse unter Linux kopieren.

Voraussetzungen:

Um die in diesem Handbuch gezeigten Schritte auszuführen, benötigen Sie die folgenden Komponenten:

  • Ein richtig konfiguriertes Linux-System. Zum Lernen und Testen reicht eine Ubuntu-VM aus.
  • Lesezugriff auf die zu kopierenden Dateien/Verzeichnisse. Erfahren Sie mehr über Dateiberechtigungen unter Linux.

Kopieren von Dateien und Verzeichnissen

Das Kopieren ist einer der grundlegendsten Vorgänge, die Sie beim Bedienen eines Computers ausführen müssen. Unter Linux stehen mehrere Tools zum Kopieren von Dateien und Verzeichnissen zur Verfügung:

  • vgl: Das Standardtool zum Kopieren von Dateien und Verzeichnissen. Es ist auf allen Linux-Distributionen verfügbar.
  • rsync: Ein leistungsstarkes Tool, das hauptsächlich zur Dateisynchronisierung verwendet wird. Wir können es jedoch auch zum Kopieren von Dateien und Verzeichnissen verwenden.

Zu Demonstrationszwecken haben wir zwei Verzeichnisse konfiguriert: /tmp/source Und /tmp/destination.

$ Baum /tmp/source

$ Tree /tmp/destination

Kopieren von Dateien und Verzeichnissen mit Cp

Die Befehlsstruktur von cp ist wie folgt:

$ cp

Alle verfügbaren Optionen finden Sie auf der Manpage:

$ Mann cp

Eine Datei kopieren

Der folgende Befehl kopiert die „1.txt“ von /tmp/source Zu /tmp/destination:

$ cp -v /tmp/source/1.txt /tmp/destination

$ Tree /tmp/destination

Wenn Sie als Ziel einen anderen Dateinamen angeben, benennt cp diese entsprechend um:

$ cp -v /tmp/source/1.txt /tmp/destination/test.txt

$ Tree /tmp/destination

Mehrere Dateien kopieren

Der folgende Befehl kopiert alle Textdateien darunter /tmp/source Zu /tmp/destination:

$ cp -v /tmp/source/1.txt /tmp/source/2.txt /tmp/source/3.txt /tmp/source/4.txt /tmp/source/5.txt /tmp/destination

$ Tree /tmp/destination

Wenn die Quelldateien nach einem Muster benannt sind, kann cp damit arbeiten:

$ cp -v /tmp/source/*.txt /tmp/destination

$ Tree /tmp/destination

Kopieren eines Verzeichnisses

Im nächsten Beispiel kopieren wir „subdir1“ nach /tmp/destination:

$ cp -v -r /tmp/source/subdir1 /tmp/destination

$ Tree /tmp/destination

Hier weist das Flag „-r“ den cp-Befehl an, das Verzeichnis und seinen gesamten Inhalt rekursiv an das Ziel zu kopieren.

Wenn im Ziel ein anderer Verzeichnisname angegeben ist, benennt cp es entsprechend um:

$ cp -v -r /tmp/source/subdir1 /tmp/destination/yellow

$ Tree /tmp/destination

Wenn das Zielverzeichnis bereits existiert, kopiert cp das Quellverzeichnis und alles, was es enthält. Wir können jedoch festlegen, dass nur die Dateien und Unterverzeichnisse kopiert werden, nicht das Zielverzeichnis:

$ cp -v -rT /tmp/source/subdir1 /tmp/destination/yellow

$ Tree /tmp/destination

Kopieren von Dateien und Verzeichnissen mit Rsync

Der Hauptzweck von rsync ist die Synchronisierung der Dateien zwischen den lokalen/Remote-Servern. Es verfügt über zahlreiche Zusatzfunktionen. Wir können es jedoch auch zum „Synchronisieren“ von Dateien von einem Verzeichnis in ein anderes (mit anderen Worten: Kopieren) verwenden.

Die rsync-Befehlsstruktur ist wie folgt:

$ rsync

Schauen Sie sich die Manpage für alle verfügbaren Optionen an:

$ man rsync

Dateien kopieren

Der folgende Befehl kopiert die „1.txt“ von /tmp/source Zu /tmp/destination:

$ rsync -a /tmp/source/1.txt /tmp/destination && tree /tmp/destination

Hier weist der Parameter „-a“ rsync an, im Archivmodus zu arbeiten.

Wir können die Datei auch mit einem anderen Namen in das Ziel kopieren:

$ rsync -a -v /tmp/source/1.txt /tmp/destination/different.txt && tree /tmp/destination

Um mehrere Dateien zu kopieren, geben Sie die Dateien einzeln an oder beschreiben Sie das zu vergleichende Muster:

$ rsync -a -v /tmp/source/1.txt /tmp/source/2.txt /tmp/destination && tree /tmp/destination

$ rsync -a -v /tmp/source/*.txt /tmp/destination && tree /tmp/destination

Verzeichnisse kopieren

Im Gegensatz zu cp, um die Verzeichnisse mit ihren Dateien und Unterverzeichnissen zu kopieren, gibt es bei rsync keine Änderung der Syntax. Beim Arbeiten im Archivmodus kopiert rsync automatisch alle Inhalte rekursiv.

Ein wesentlicher Unterschied ist hier der abschließende Schrägstrich (/).

  • Wenn im Quellverzeichnis ein Schrägstrich vorhanden ist, kopiert rsync den Inhalt des Quellverzeichnisses in das Ziel.
  • Wenn im Quellverzeichnis kein Schrägstrich vorhanden ist, kopiert rsync das Quellverzeichnis in das Zielverzeichnis.

Die folgenden Befehle veranschaulichen den Unterschied perfekt:

$ rsync -a -v /tmp/source /tmp/destination

$ Tree /tmp/destination

$ rsync -a -v /tmp/source/ /tmp/destination

$ Tree /tmp/destination

Kopieren von Dateien auf einen Remote-Computer mit Scp

Der scp-Befehl ist ein spezielles Tool, das die Dateien und Verzeichnisse über SSH kopiert. Dafür muss der OpenSSH-Server auf dem Remote-Host installiert sein.

Die Grundlagen des Befehls scp sind dieselben wie der Befehl cp. Erfahren Sie mehr über den scp-Befehl.

Dateien kopieren

Im folgenden Befehl kopieren wir die Ubuntu 22.04 ISO in die /tmp Verzeichnis auf einem Remote-Host:

$ scp ubuntu-22.04-desktop-amd64.iso [email protected]:/tmp

Um eine Datei von einem Remote-Host zu kopieren, verwenden Sie den folgenden Befehl:

$ scp [email protected]:/tmp/ubuntu-22.04-desktop-amd64.iso.

Verzeichnisse kopieren

Um ein Verzeichnis auf einen Remote-Host zu kopieren, verwenden wir den folgenden scp-Befehl:

$ scp -r test_dir [email protected]:/tmp

Hier das „Der Parameter „r“ soll im rekursiven Modus arbeiten (wird zum Kopieren des Verzeichnisses benötigt).

Abschluss

Wir haben die verschiedenen Möglichkeiten zum Kopieren der Dateien unter Linux vorgestellt. Wir haben gezeigt, wie Sie die Befehle cp und rsync verwenden, um die Dateien und Verzeichnisse lokal zu kopieren. Wir haben auch gezeigt, wie Sie mit dem Befehl scp die Dateien und Verzeichnisse auf einen Remote-Host kopieren.

Für erweiterte Kopier- und Sicherungskonfigurationen ist rsync die bessere Option. Es kann eine Systemsicherung erstellen, mit mehreren Remote-Hosts synchronisieren, neue Dateien aktualisieren und vieles mehr.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen