Wie kopiere ich Dateien unter AIX von einem FS auf ein anderes FS?

Wie kopiere ich Dateien unter AIX von einem FS auf ein anderes FS?

Wir haben ein Dateisystem: /foo

Und wir haben ein weiteres Dateisystem: /bar

Q:Wie kann ich alle Dateien von /foo nach /bar kopieren?

Wir haben keinen Platz, um sie zu komprimieren, sondern nur, um sie zu kopieren. Aber es könnten Symlinks und Hardlinks im Dateisystem vorhanden sein. Diese und der Besitzer, die Berechtigungen, die Struktur und die versteckten Dateien müssen also erhalten bleiben! Was ist der beste Weg?

extra: Dateien mit seltsamen Zeichen oder Block-/Zeichendateien

AKTUALISIEREN: Können wir hier gzip verwenden? Wenn über das Netzwerk kopiert werden muss, wäre Komprimierung sehr, sehr nützlich.

Antwort1

Ruis Kommentarist fast ausreichend; dies sollte alles kopieren, einschließlich versteckter Dateien:

cd /foo; tar cpf - . | (cd /bar; tar xpvf -)

(Rennen wie root).

Wenn Sie die zwischen den beiden Prozessen kopierten Daten komprimieren möchten tar, können Sie der Pipeline einen Kompressor und einen Dekompressor hinzufügen:

cd /foo; tar cpf - . | gzip -9 | (cd /bar; gunzip | tar xpvf -)

Wenn Ihre Version tardies unterstützt, können Sie zstattdessen das Flag verwenden:

cd /foo; tar cpzf - . | (cd /bar; tar xpzvf -)

(Auf einigen Plattformen ist das -pFlag standardmäßig aktiviert root, bei AIX bin ich mir nicht sicher.)

Antwort2

Tar ist zwar sehr vielseitig, kennt aber viele grundlegende Probleme im Zusammenhang mit Inode-Daten nicht. Ich empfehle dringend eine Variante von

cd $src; find . | backup -if - | (cd $target; restore -xqf -)

Vor Jahren habe ich daraus ein „hübsches Skript“ gemacht – aber hauptsächlich verwende ich das Obige einfach auf der Befehlszeile.

Ein hübsches Skript (von 2009! Igitt!) finden Sie unter:http://www.rootvg.net/content/view/301/309/

verwandte Informationen