it-swarm.com.de

Wie kopieren Sie ein Verzeichnis und seinen Inhalt unter einem neuen Verzeichnisnamen an einen neuen Speicherort?

Ich bin neu in der Linux-Kommandozeile und versuche gerade, den Kopierbefehl in den Griff zu bekommen.

Kann mir jemand sagen, ob es möglich ist, ein Verzeichnis mit seinen Unterverzeichnissen und zugehörigen Dateien in ein neues Verzeichnis mit einem neuen Namen zu kopieren, z. directory_backup?

Vielen Dank für jede Hilfe im Voraus

49
Edmuntu

Sie verwenden -r (rekursiv kopieren) und geben den neuen Namen an

cp -r /path/to/directory /path/to/location/new-name

ersetzen Sie diese durch die tatsächlichen Pfade ..., um beispielsweise stuff aus meinem Ausgangsverzeichnis in ein vorhandenes Verzeichnis backup zu kopieren und das neue Verzeichnis stuff-backup zu benennen (falls dies der Fall ist) Verzeichnis existiert bereits, beachte, dass stuff kopiert wird in es, nicht überschreibe es).

cp -r ~/stuff ~/backup/stuff-backup

~ ist eine Verknüpfung für Ihr Home-Verzeichnis /home/$USER oder /home/zanna in meinem Fall. Sie können es weglassen, wenn es sich bei dem aktuellen Arbeitsverzeichnis um Ihr Basisverzeichnis handelt. Dies können Sie in Ihrer Eingabeaufforderung sehen

[email protected]:~$
              ^--the ~ here is where I am - home!

Sie können das Verbose-Flag -v hinzufügen, damit cp jede ausgeführte Kopie meldet ...

$ cp -vr stuff backup/stuff-backup
'stuff/thing1' -> 'backup/stuff-backup/thing1'
'stuff/thing2' -> 'backup/stuff-backup/thing2
...
65
Zanna

Der Befehl, den Sie benötigen, ist einfach cp, was für "copy" steht.

Sie können es beispielsweise mit einer der folgenden Syntaxen verwenden:

cp SOURCEFILE TARGETFILE
cp SOURCEFILE TARGETDIRECTORY

Mit der ersten Variante können Sie einen neuen Dateinamen für die Zieldatei angeben, während mit der zweiten Variante eine gleichnamige Kopie im Zielverzeichnis erstellt wird. Sie müssen natürlich zuerst die Platzhalter in Großbuchstaben durch gültige Pfade ersetzen.

cp gilt jedoch standardmäßig nur für Dateien, nicht für Verzeichnisse. Um ein vollständiges Verzeichnis mit seinem gesamten Inhalt rekursiv zu kopieren, müssen Sie die Option -r hinzufügen:

cp -r SOURCEDIRECTORY TARGETDIRECTORY

Sie können mehr über den Befehl cp erfahren, indem Sie man cp in Ihr Terminal eingeben.

9
Byte Commander

Alternativ zum allgemein nützlichen Befehl cp können Sie rsync verwenden, das den zusätzlichen Vorteil hat, die Berechtigungen/Zeitstempel der ursprünglichen Verzeichnisstruktur zu replizieren:

rsync -av dir/ newdir

-a Archiv -v ausführlich

beachten Sie den Schrägstrich nach dem Quellverzeichnis.

6
slowko

Sie können den folgenden Befehl verwenden, um das Verzeichnis von einem Ort in ein anderes Unterverzeichnis zu kopieren.

cp -Rvp /home/edmuntu/data /home/edmuntu/mydata/

Erklärung des Befehls:

  • -R = Verzeichnisse rekursiv kopieren
  • v = erklären, was getan wird
  • p = Es wird Ihnen helfen, Ihre Erlaubnis und Ihr Eigentum mit Zeitstempeln zu bewahren
4
Rakesh C

cp ist der Befehl, der die gesuchte Funktion ausführt. Es steht für Kopie und es macht genau das. Der Befehl, der in dieser Situation für Sie funktionieren würde, lautet

cp -R source/ destination/

Dies würde den Ordner source/ und alle seine Unterverzeichnisse nach destination/ kopieren.

Wenn destination/ nicht existiert, wird es erstellt.

Das -R -Flag steht für rekursiv, wodurch cp angewiesen wird, alle Unterverzeichnisse zu kopieren.

4
Owen Hines

Ich finde es einfacher, in das Verzeichnis zu wechseln, aus dem ich zuerst kopiere. In diesem Beispiel wechseln Sie in ein Verzeichnis, das alle mit /boot aufgerufen haben. Jeder kann die folgenden Befehle kopieren und in sein Terminal einfügen.

cd /boot
Sudo mkdir /boot_backup
Sudo cp -r . /boot_backup
du /boot_backup -h

752K    /boot_backup/extlinux/themes/debian-wheezy
756K    /boot_backup/extlinux/themes
832K    /boot_backup/extlinux
2.5M    /boot_backup/grub/i386-pc
20K     /boot_backup/grub/locale
2.3M    /boot_backup/grub/fonts
7.2M    /boot_backup/grub
565M    /boot_backup

Für den Befehl cp wird das aktuelle Verzeichnis als . identifiziert. Dies ist das /boot -Verzeichnis, in das wir gewechselt sind. Mit der Option -r können alle Unterverzeichnisse rekursiv eingeschlossen werden.

Um sicherzustellen, dass es funktioniert, führen Sie du aus, um in diesem Fall alle Unterverzeichnisse und die gesamte Dateigröße im neuen Verzeichnis /boot_backup aufzulisten.

Verwenden Sie nach Abschluss dieser Anleitung: Sudo rm -r /boot_backup, um das neue Verzeichnis und seine Unterverzeichnisse zu entfernen.

4

Sie möchten im Allgemeinen die Dateiberechtigungen beim Erstellen einer Kopie beibehalten, nicht die neuen Standarderstellungsberechtigungen. Dies bedeutet, dass Sie -a flag für cp verwenden.

cp -a file filenew
1
Robi