Kopieren von Verzeichnissen unter Linux ist ein großer Teil der Routine eines jeden Systemadministrators.
Wenn Sie schon länger mit Linux arbeiten, wissen Sie, wie wichtig es ist, Ihre Ordner gut strukturiert zu halten.
In einigen Fällen müssen Sie möglicherweise einige Verzeichnisse auf Ihrem System kopieren um Ihre Hauptdateisystemstruktur zu überarbeiten.
In diesem Tutorial werden wir sehen, wie Sie ganz einfach Verzeichnisse und Ordner unter Linux kopieren können mit dem cp-Befehl.
Verzeichnisse unter Linux kopieren
Um unter Linux ein Verzeichnis zu kopieren, müssen Sie den Befehl „cp“ mit der Option „-R“ für rekursiv ausführen und die zu kopierenden Quell- und Zielverzeichnisse angeben.
$ cp -R <source_folder> <destination_folder>
Nehmen wir als Beispiel an, dass Sie das Verzeichnis „/etc“ in einen Sicherungsordner namens „/etc_backup“ kopieren möchten.
Der Ordner „/etc_backup“ befindet sich ebenfalls im Stammverzeichnis Ihres Dateisystems.
Um das „/etc“-Verzeichnis in diesen Sicherungsordner zu kopieren, würden Sie den folgenden Befehl ausführen
$ cp -R /etc /etc_backup
Durch Ausführen dieses Befehls wird der Ordner „/etc“ in den Ordner „/etc_backup“ kopiert, was zu folgendem Ordner führt.
Super, Sie haben erfolgreich einen Ordner kopiert in einem anderen Ordner unter Linux.
Aber was wäre, wenn Sie den Inhalt des Verzeichnisses rekursiv mit dem cp-Befehl kopieren wollten?
Verzeichnisinhalte unter Linux rekursiv kopieren
Um den Inhalt eines Verzeichnisses rekursiv zu kopieren, müssen Sie den „cp“-Befehl mit der Option „-R“ verwenden und das Quellverzeichnis gefolgt von einem Platzhalterzeichen angeben.
$ cp -R <source_folder>/* <destination_folder>
Nehmen wir in unserem vorherigen Beispiel an, dass wir den Inhalt des Verzeichnisses „/etc“ in den Ordner „/etc_backup“ kopieren möchten.
Um das zu erreichen, würden wir den folgenden Befehl schreiben
$ cp -R /etc/* /etc_backup
Wenn Sie den Inhalt des Sicherungsordners auflisten, werden Sie feststellen, dass nicht der Ordner selbst kopiert wurde, sondern sein Inhalt.
$ ls -l /etc_backup
Super, Sie haben den Inhalt des „/etc“-Verzeichnisses kopiert direkt in einen Sicherungsordner!
Mehrere Verzeichnisse mit cp kopieren
Um mehrere Verzeichnisse unter Linux zu kopieren, müssen Sie den „cp“-Befehl verwenden und die verschiedenen zu kopierenden Verzeichnisse sowie den Zielordner auflisten.
$ cp -R <source_folder_1> <source_folder_2> ... <source_folder_n> <destination_folder>
Nehmen wir als Beispiel an, dass wir das „/etc“-Verzeichnis sowie alle Home-Verzeichnisse kopieren möchten, die sich im „/home“-Verzeichnis befinden.
Um das zu erreichen, würden wir den folgenden Befehl ausführen
$ cp -R /etc/* /home/* /backup_folder
Herzlichen Glückwunsch, Sie haben erfolgreich mehrere Verzeichnisse kopiert mit dem cp-Befehl unter Linux!
Verzeichnisse auf Remote-Hosts kopieren
In manchen Fällen möchten Sie vielleicht ein Verzeichnis kopieren, um ein Backup auf einem Backup-Server aufzubewahren.
Unnötig zu sagen, dass Ihr Backup-Server lokal entfernt ist:Sie müssen Ihr Verzeichnis über das Netzwerk kopieren.
Kopieren mit rsync
Um Verzeichnisse an entfernte Orte zu kopieren, müssen Sie den Befehl rsync verwenden, den Quellordner sowie das entfernte Ziel angeben, in das kopiert werden soll.
Stellen Sie sicher, dass Sie die Option „-r“ für „rekursiv“ und die Option „-a“ für „alle“ angeben (ansonsten werden nicht reguläre Dateien übersprungen)
$ rsync -ar <source_folder> <destination_user>@<destination_host>:<path>
Wenn das Dienstprogramm „rsync“ nicht auf Ihrem Server installiert ist, stellen Sie außerdem sicher, dass Sie es mit sudo-Berechtigungen installieren.
$ sudo apt-get install rsync
$ sudo yum install rsync
Nehmen wir als Beispiel an, dass wir den Ordner „/etc“ auf einen Sicherungsserver kopieren müssen, der sich unter 192.168.178.35/24 befindet.
Wir wollen das Verzeichnis mit dem Benutzernamen „devconnected“ in das Verzeichnis „/etc_backup“ des Remote-Servers kopieren.
Um das zu erreichen, würden wir den folgenden Befehl ausführen
$ rsync -ar /etc [email protected]:/etc_backup
Hinweis:Wir haben bereits eine Anleitung zum Übertragen von Dateien und Ordnern über das Netzwerk geschrieben, falls Sie eine ausführliche Anleitung dazu benötigen.
Ebenso können Sie den Inhalt des Verzeichnisses „/etc/“ statt des Verzeichnisses selbst kopieren, indem Sie nach dem zu kopierenden Verzeichnis ein Platzhalterzeichen anhängen.
$ rsync -ar /etc/* [email protected]:/etc_backup/
Wenn Sie schließlich das aktuelle Datum einführen möchten, während Sie eine Verzeichnissicherung durchführen, können Sie die Bash-Parameterersetzung verwenden.
$ rsync -ar /etc/* [email protected]:/etc_backup/etc_$(date "+%F")
Hinweis :Wenn Sie nach einem Tutorial zum Festlegen von Datumsangaben unter Linux suchen, haben wir auf der Website eine Anleitung dazu.
Kopieren mit scp
Um das Verzeichnis unter Linux an einen entfernten Ort zu kopieren, können Sie den Befehl „scp“ mit der Option „-r“ für rekursiv ausführen, gefolgt von dem zu kopierenden Verzeichnis und dem Zielordner.
$ scp -r <source_folder> <destination_user>@<destination_host>:<path>
Nehmen wir als Beispiel an, dass wir das Verzeichnis „/etc“ auf einen Sicherungsserver kopieren möchten, der sich unter 192.168.178.35 im Ordner „/etc_backup“ befindet.
Um dies zu erreichen, würden Sie den folgenden Befehl ausführen
$ scp -r /etc [email protected]:/etc_backup/
Herzlichen Glückwunsch, Sie haben erfolgreich ein ganzes Verzeichnis mit dem scp-Befehl kopiert.
Ähnlich wie beim rsync-Befehl können Sie die Bash-Parameterersetzung verwenden, um Ihr Verzeichnis in ein benutzerdefiniertes Verzeichnis auf Ihrem Server zu kopieren.
$ scp -r /etc [email protected]:/etc_backup/etc_$(date "+%F")
Schlussfolgerung
In diesem Tutorial haben Sie gelernt, wie Sie ganz einfach Verzeichnisse unter Linux kopieren können , unabhängig davon, ob Sie dies lokal oder remote tun möchten.
Meistens werden Verzeichnisse kopiert, um Backups von kritischen Ordnern auf Ihrem System zu haben :nämlich /etc, /home oder Linux-Protokolle.
Wenn Sie an Linux-Systemadministration interessiert sind , wir haben einen eigenen Abschnitt auf der Website, also schauen Sie sich das unbedingt an!