Wie kann ich Dateien rekursiv kopieren, ohne vorhandene Berechtigungen zu überschreiben?


9

Wenn ich Dateien von einem Verzeichnis in ein anderes kopiere, werden die Verzeichnisberechtigungen zurückgesetzt (z. B. von 0755 bis 0775). Dies führt zu Problemen und zwingt mich, zurück zu gehen und die Verzeichnisberechtigungen manuell zurückzusetzen. Ich mache geradecp -r /source/directory /destination/directory

Ich möchte alle Dateien und neuen Verzeichnisse kopieren, aber die Berechtigungen vorhandener Verzeichnisse nicht überschreiben.

Antworten:


5

Um Links zu erhalten, können Sie cp( manpage for cp ) mit dem -dFlag verwenden, das äquivalent zu ist --no-dereference --preserve=links.

Um dies mit den Flags -pund zu kombinieren -R, können Sie das Archiv-Flag verwenden -a.


7

Fügen Sie das Flag -p hinzu

cp -pR /source/dir /dest/dir

Von man cp:

-p     same as --preserve=mode,ownership,timestamps

2

Mein ~/.bashrcwurde geändert, um zu enthalten

alias cp='cp -i --preserve=all'

Das heißt, wenn ich es benutze cp, wird es auch vor dem Überschreiben ( -i) aufgefordert und behält alle bei (dh Modus, Besitz, Zeitstempel und wenn möglich zusätzliche Attribute: Kontext, Links, xattr).

Sie können es jederzeit ändern, modeanstatt, allwenn Sie möchten, aber ich mag diesen Alias, um die Standardeinstellungen von zu ändern cp.

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.