Kopieren Sie ein Verzeichnis unter Unix

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

Author: Peter Mortensen, 2010-12-15

3 answers

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

-r = rekursiv kopiert alle Unterverzeichnisse

-f = erzwingen Sie, wenn eine vorhandene Zieldatei nicht geöffnet werden kann, entfernen Sie sie und versuchen Sie es erneut

Hinweis Sie sollten vorsichtig sein, wenn Sie das Flag -f, da es alles, in das Sie kopieren, gewaltsam überschreibt. Danke @Nifle für diesen Vorschlag.

Sie können den Platzhalter * verwenden, um alle Dateien im Verzeichnis zu kopieren.

 118
Author: qroberts,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-12-15 17:45:00

Während cp -R Antworten sind richtig (BTW der Fall der fahne auf BSD, muss sein Kapital, beide sind unterstützt auf linux), gibt es eine alte Beschwörungsformel 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 Links sowohl hart als auch symbolisch hat.

Möchten Sie kopieren, um vorhandene symbolische Links durch eine mit demselben Text zu ersetzen? Oder mit Links zu demselben Ziel (Anpassen relativer Pfade zum Kompensieren)? Oder mit bitweisen Kopien des Ziels?

Wenn zwei Dateien im Original fest verknüpft sind, sollte die neue Struktur zwei Kopien der Daten oder nur eine haben?

, Entscheidungen, Entscheidungen. Tar hat vernünftige Standardeinstellungen, lässt Sie aber sehr spezifisch sein.

 11
Author: dmckee --- ex-moderator kitten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-12-15 16:07:16

Ich mag

cp -axv source dest

Rsync ist ein weiteres gutes Werkzeug dafür

rsync -va source dest
 9
Author: Pete Ashdown,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-09-06 13:55:25