Wie kopiere ich mit dem Befehl cp in der Linux-Shell ein ganzes Verzeichnis in ein anderes Verzeichnis?

Wie kopiere ich mit dem Befehl cp in der Linux-Shell ein ganzes Verzeichnis in ein anderes Verzeichnis?

Ich habe ein Verzeichnis, sagen wir „work“: ~/work/ Dieses Verzeichnis enthält einige Unterordner (d1, d2...) und Dateien in diesen Unterordnern. Ich möchte eine Sicherungskopie im selben Ordner erstellen, also würde es so aussehen: ~/backup/work/ Wenn ich jedoch cp -r ./work ./backup den Ordner „work“ verwende, wird nicht kopiert, sondern nur seine Unterordner (also ist es jetzt ~/backup/d1 ~/backup/d2...). Irgendeine Idee, wie das funktioniert? Ich bin ziemlich neu bei Shell, also übersehe ich etwas :)

Antwort1

cp erstellt keine führenden Verzeichnisse. Wenn es einen nicht vorhandenen Pfad erkennt, nimmt es an, dass dies der neue Name des zu kopierenden Verzeichnisses sein soll.

Versuchen Sie, in ein bereits vorhandenes Verzeichnis zu kopieren: mkdir workzuerst, dann cp -r work backup.

Antwort2

Versuchen

rsync -avz ./work ./backup

Antwort3

cp -r ./work/ ./backup/

oder

cp -r ./work ./backup/work

Antwort4

Wenn Sie ein Linux-System verwenden:

cp -rT --parents work backup/work

verwandte Informationen