Verhalten von cp -a

Stollentroll

Stollentroll

Schattenparasit
Hallo zusammen,

ich versuche grade, einen Ordner zwischen zwei USB-Festplatten zu kopieren, und zwar als root, da einige der zu kopierenden Dateien nur für root lesbar sind.

Ich möchte aber die owner erhalten.

Bisher dachte ich, und nach Lesen der man-page versteh ich das auch so, dass man dazu praktischerweise das -a Flag nehmen kann, rekursiv solls ja auch sein.

Allerdings geht bei mir trotzdem der owner verloren

Code:
cp -av /media/disk-2/Sicherungen/ /media/disk/

Quelle:
Code:
drwxr-xr-x 6 christoph christoph 4,0K 28. Jun 2008  Sicherungen

Ziel:
Code:
drwx------  3 root      root      4,0K 12. Mai 18:04 Sicherungen

cp-Version:
Code:
laptop1 ~ # cp --version
cp (GNU coreutils) 7.1
Copyright © 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Geschrieben von Torbjörn Granlund, David MacKenzie und Jim Meyering.

Ich denke mal, ich mach irgendwas falsch. :D

Über einen Hinweis darauf, was das sein könnte, würd ich mich freuen. :)
 
Ist das Dateisystem der Zielpartition denn in der Lage, unixoide Dateieigenschaften zu verwalten? Das wäre das einzige, was mir einfiele. Ich hätte auch '-a' als Option genommen.
 
Oha, doch noch ne Angabe vergessen.

Beide Platten sind in ext3 formatiert. Also ein klares Ja.
 
Hi,

hast du cp -a denn mal mit anderen Verzeichnissen und Dateien getestet? Bei mir macht cp -a was es soll, aber ich verwende auch eine deutlich aeltere cp Version als du (6.10). Mir wuerde sonst auch nur noch einfallen, mal mit mount zu gucken, ob denn alles richtig gemountet ist.

Aber wenn das, wie du sagst, der Fall ist, wuerde ich auch einen Bug in deiner konkreten cp Version vermuten. Dann koenntest du ja mal gucken, ob du das Verhalten in einer sauberen Umgebung reproduzieren kannst.

mfg,
bytepool
 
Davon, dass die Platten richtig gemountet sind, war ich einfach ausgegangen, das ist ja über einen Automounter geschehen.
(mount sagt dieses:
Code:
/dev/sdb1 on /media/disk type ext3 (rw,nosuid,nodev,uhelper=hal)
/dev/sdc1 on /media/disk-1 type ext3 (rw,nosuid,nodev,uhelper=hal)
Sieht richtig aus, würd ich sagen.
)
Aber ich hab jetzt mal versucht, das Problem zu reproduzieren, nicht in einer sauberen Umgebung, aber immerhin mit kleineren Dateien, und jetzt ahne ich, woran es liegt.

Der Besitzer einer Datei ist der kopierende User, solange die Datei kopiert wird. Sobald die Datei fertig kopiert ist, wird der Besitzer auf den Ursprungsbesitzer geändert, bei mir also von root nach christoph.
Bei nem Ordner ist es so ähnlich, so lange nicht der komplette Inhalt des Ordners kopiert ist, gehört der Ordner root.
Wenn man das Kopieren abbricht, wird der Besitzer nicht mehr geändert.
Was ich mir jetzt grade ausgedacht habe: Als ich die 200 GB kopiert hab ist bei ein paar Dateien ein Fehler aufgetreten, weswegen der Besitzer der Ordner, in denen diese Dateien lagen, nicht mehr geändert wurde. Zumindest das Fehler beim Kopieren aufgetreten sind würd ich nicht ausschließen, das ist auch der Grund, warum ich meine Daten kopieren will.

Hm, ausgeschrieben klingts irgendwie unwahrscheinlicher, dass das stimmt. :D

Ich werd jetzt jedenfalls nochmal versuchen über nen anderen Rechner die Daten zu kopieren und anschließend ein diff drüber laufen lassen, vielleicht klappts ja.
 
Zuletzt bearbeitet:
Probier's doch mit rsync statt mit cp, vielleicht zeigt das ein anderes Verhalten.
 
/dev/sdb1 on /media/disk type ext3 (rw,nosuid,nodev,uhelper=hal)
/dev/sdc1 on /media/disk-1 type ext3 (rw,nosuid,nodev,uhelper=hal)

Könnte es daran gelegen haben?

MfG,
Schard
 

Ähnliche Themen

Verständnisfrage zu RegExps

Fehler beim Kompilieren von qcserial

Asterisk startet nicht...

Festplatte friert ein nach suspend/resume

Problem mit GCC / Binutils

Zurück
Oben