Kopieren Sie ein Verzeichnis unter Unix


78

Wie kann ich eine Verzeichnisstruktur, dir1, in dir2 (mit allen Unterverzeichnissen) unter Unix mithilfe des Terminalfensters kopieren?


2
"cp -r / dir1 / dir2" Stimmt das?
Dinesh Kumar

Ja, das ist richtig. Möglicherweise möchten Sie eine der Antworten als Ihre Lösung markieren.
Qroberts

Antworten:


115
cp -rf /source/path/ /destination/path/

-r = rekursiv, kopiert alle Unterverzeichnisse

-f = erzwinge, wenn eine vorhandene Zieldatei nicht geöffnet werden kann, entferne sie und versuche es erneut

Hinweis Sie sollten vorsichtig sein, wenn Sie das -fFlag verwenden, da es alles, in das Sie kopieren, zwangsweise überschreibt. Vielen Dank an @Nifle für diesen Vorschlag.

Möglicherweise möchten Sie den Platzhalter * verwenden, um alle Dateien im Verzeichnis zu kopieren, wenn dies erforderlich ist.


11
Ich bin nicht einverstanden, dass Sie die fFlagge verwenden sollten. -f if an existing destination file cannot be opened, remove it and try again
Nifle

Persönlich benutze ich immer das Flag -f. Ist keine gute Übung, vielleicht haben Sie recht.
Qroberts

Wenn Sie wissen, was es tut, und Sie wissen, was Sie tun, ist es in Ordnung. In diesem Fall ist es jedoch für einen unerfahrenen Benutzer möglicherweise nicht geeignet.
Nifle

@Nifle Ja, ich verstehe, was du sagst. Nur dass, wenn er es erzwingt, die Chancen besser stehen, dass es funktioniert, als wenn er es nicht getan hätte. Es hängt alles davon ab, was Sie tun und was Sie verstehen.
Qroberts

Wenn Sie in Ihrer Antwort eine Notiz darüber -feinfügen, dass die Markierung nützlich ist, wenn Sie <source> über <dest> kopieren (wie beim Überschreiben von Dingen in <dest>), werde ich sie selbst verbessern und meine Antwort löschen.
Nifle

11

Während die cp -RAntworten richtig sind (BTW der Fall der Flagge auf BSD muss Kapital sein, beide werden auf Linux unterstützt), gibt es eine alte Beschwörung mit tar :

$ tar cf - . | (cd DIR; tar xf - )

Warum zum Teufel würdest du das tun? Weil tar ein ziemlich ausgeklügeltes Verständnis von harten und symbolischen Verknüpfungen hat .

Möchten Sie kopieren, um vorhandene symbolische Links durch Links mit demselben Text zu ersetzen? Oder mit Links zum selben Ziel (relative Pfade anpassen, um dies zu kompensieren)? Oder mit bitweisen Kopien des Ziels?

Wenn zwei Dateien im Original fest miteinander verbunden sind, sollte die neue Struktur zwei Kopien der Daten enthalten oder nur eine?

Entscheidungen Entscheidungen. Tar hat vernünftige Standardeinstellungen, aber Sie können sehr genau darüber sein.


9

ich mag

cp -axv source dest

Rsync ist ein weiteres gutes Werkzeug dafür

rsync -va source dest
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.