Also wollte ich meinen Home-Ordner sichern, indem ich ihn wie folgt auf ein externes Laufwerk kopierte:
sudo cp -r /home/my_home /media/backup/my_home
Mit dem Ergebnis, dass alle Ordner auf den externen Laufwerken jetzt im Besitz von sind root:root
. Wie kann ich cp
das Eigentum und die Berechtigungen des Originals behalten?
permissions
cp
Psachnodaimonia
quelle
quelle
man
für mich kryptisch ist. In diesem Fall sagtman
at . Woher sollte ich wissen, dass dies bedeutet, die ursprünglichen Berechtigungen beizubehalten?-r
same as --preserve=mode,ownership,timestamps
-p
Antworten:
Aus der cp manpage:
quelle
cp -a
. Dies beinhaltet auch das-r
ecursive-Flag, aber es macht mehr als das - es bewahrt alles an der Datei; SELinux-Attribute, Links, xattr, alles. Es ist "Archivierungsmodus". Es gibt bessere Tools zum Erstellen eines Backups. Wenn Sie jedochcp
ein Backup erstellen, verwenden Sie nichts anderes alscp -a
.cp -a
funktioniert auf einigen Systemen nicht: zB OS X, wo (zumindest in einigen Versionen) eines benötigt wirdcp -pR
. Auf meinem aktuellen OS X-System (10.10.15)cp -a
scheint dies jedoch eine Ehre zu sein.diff <(getfacl -R folder1) <(getfacl -R folder2)
scheint i sill verschiedene Zugriffssteuerungslisten zu erhalten :(Sie können auch verwenden
rsync
.Aus der
rsync
Manpage:In dieser Frage finden Sie einen Vergleich zwischen
cp
undrsync
: https://stackoverflow.com/q/6339287/406686Beachten Sie die abschließenden Schrägstriche (Details finden Sie auf der Manpage).
quelle
cp -p
ist nett, aber ich magrsync
die Ausgabe im Allgemeinen so viel mehr, dass ich mich darauf geeinigtpcp
habetime rsync --progress -ah
. Steht für "Fortschrittskopie" in meinem Kopf. Und beide akzeptieren-r
, so funktioniert es gut für die allgemeine Terminal-Nutzung - aber leider nicht in Kombination mit,sudo
wie in dieser Frage / Antwort gezeigt.rsync -a
behält keine erweiterten Attribute (-X
) und keine ACLs (-A
) bei - die Kurzbeschreibung besagtarchive mode; equals -rlptgoD (no -H,-A,-X)
. ZB werden SELinux-Kontexte ohne nicht erhalten-X
. Für viele Anwendungsfälle ist dies in Ordnung, aber wenn Sie eine Sicherungskopie Ihrer Systempartition erstellen, kann das Fehlen von -X zu erheblichen Problemen führen. Soweit ich weiß,cp -a
bleiben wirklich alle Dateiattribute erhalten.sudo cp -a
Eigentümer und Gruppen zwar beibehalten,sudo rsync -a
aber in root geändert. @Perseids ist also richtig./home
Ordner mit kopiertrsync -aX /home /mnt/sdd/
und es hat wie ein Zauber funktioniert.Wo
-a
ist die Abkürzung für--archive
- im Grunde kopiert es ein Verzeichnis genauso, wie es ist; Die Dateien behalten alle ihre Attribute bei, und Symlinks werden nicht dereferenziert (-d
).Von
man cp
:quelle
Ich benutze
cp -pdRx
die Option,-p
die Modus, Besitz und Zeitstempel beibehält,-d
Links beibehält (so dass Symlinks statt des kopierten Dateiinhalts angezeigt werden),-R
es rekursiv ausführt und-x
auf einem Dateisystem bleibt (nur dann wirklich nützlich, wenn Sie kopieren/
oder etwas mit einem aktiven Einhängepunkt ).PS:
-R
statt-r
ist nur Gewohnheit zu benutzenls -lR
.quelle
cp -ax
ist eine etwas kürzere Version der gleichen Sache. Das hat super geklappt - danke!-r
und-R
. Überprüfen Sie die Manpage (auch wenn der betreffende Teil zu lang ist, um hier zitiert zu werden).-R, -r, --recursive copy directories recursively
.cp
hat eine Option zum Beibehalten des Dateieigentums. Von der Manualseite voncp
:quelle
Sie können so etwas tun:
tar
Bewahrt die Rechte, den Besitz und die Verzeichnisstruktur, konvertiert aber alles in einen Strom von Bytes. Sie führen eine "Subshell" (die in Klammern gesetzten Befehle) aus, die das Verzeichnis ändert, und können danntar
die Konvertierung rückgängig machen. Aus einer Menge Bytes werden Verzeichnisse und Dateien mit den richtigen Inhabern und Berechtigungen.quelle
Die Antwort ist einfach: Es
cp
gibt eine-p
Option, die Berechtigungen beibehält (hier ist ein Fisch).Aber wie Wojtek in seinem Kommentar sagt,
man cp
(Lesen des Handbuchs) wäre ein guter Ausgangspunkt (möchten Sie lernen, wie man fischt?).quelle
Wenn Sie preserve = all verwenden, behält Ihre Kopie alle Attribute wie Eigentümer, Gruppe und Zeitstempel Ihrer Dateien bei. Machen Sie also Ihr Backup sicher mit dem folgenden Befehl.
quelle