Ich möchte die Dateien von drei Macs kombinieren, indem ich sie auf einer externen Festplatte in eine einzelne Ordnerhierarchie meines Designs kopiere.
In der Vergangenheit habe ich beim Kopieren von Dateien in OSX manchmal die Zeitstempel Erstellt und Geändert verloren. dh sie werden auf den gegenwärtigen Zeitpunkt geändert, an dem die Dateikopie stattfindet.
Wie kann ich sicherstellen, dass dies nicht passiert?
macos
file-transfer
der Spiegel
quelle
quelle
Antworten:
Ich bin nur selbst darauf gestoßen, und der eingebaute
cp
Befehl handhabt es tatsächlich.Ich habe ein paar alte CF-Karten entdeckt, auf denen ich die Bilder sammeln wollte. Meine Verarbeitungsskripte sehen sich die Datei mtime an, um sie an der richtigen Stelle abzulegen, so dass ich sie aufbewahren musste.
Von der Manpage :
Also konnte
zsh
ich mit (NO NAME
als Name meines Kartenvolumes) Folgendes ausführen :Ich glaube, dass das spezielle
/**/*
Konstrukt spezifisch für ZSH ist; aber du könntest sowas machenquelle
cp -p
ist unkompliziert, behält die geänderte Zeit bei (wahrscheinlich der nützlichste der drei Zeitstempel in einer Datei) und erfordert nicht die Erstellung einer Zwischenarchivdatei.cp -p
funktioniert jedoch nicht beim Kopieren von HFS + nach FAT32.Ich benutze Rsync , um diese Art von Kopie zu machen. Beachten Sie jedoch, dass die von Apple gelieferte Version 2.6.9 ist und Fehler in dieser Version enthält. Sie müssen also von einem Drittanbieter einen Build erstellen lassen, entweder selbst oder über einen Paketmanager
beispielsweise
Die Option
-E
kopiert die ACLs und-a
behält die Unix-Berechtigungen und -Zeiten bei. (Nun, es hat auf rsync 2 funktioniert. rsync 3 scheint -AX zu benötigen.)rsync
kann auch so eingerichtet werden, dass auf entfernte Maschinen kopiert wird, ohne dass Laufwerke gemountet werden müssen.Es gibt einige GUI-Frontends für rsync, zB aRsync . Für andere Verzeichnissynchronisierungstools siehe diese Frage .
quelle
rsync
ist eine gute Lösung, aber beachten Sie, dass die Zugriffszeiten dadurch nicht erhalten bleiben.pax
(siehe meine Antwort unten).man rsync
und suche nachpreserve times
:) ⇒ Die Antwort von Mark ist richtig.-t
. Der Fehler ist wahrscheinlich auch in Mavericks und Yosemite vorhanden.Verwenden Sie
pax
. Das Standardformatpax
mit dem Namen ustar behält die Änderungs- und Zugriffszeiten für Dateien bei (unter anderem Benutzer-ID, Gruppen-ID, Dateimodus- Bits und erweiterte Attribute wie Spotlight-Kommentare und ACLs). Siehepax
Manpage hier für weitere Details.Erstellen Sie zunächst
pax
auf jedem Mac ein Archiv und kopieren Sie es wie folgt auf die externe Festplatte:Geben Sie das Terminal ein:
und ziehen Sie den Ordner, in dem sich die zu kombinierenden Dateien auf diesem Mac befinden, zu Terminal:
Alternativ können Sie den vollständigen Ordnernamen eingeben:
Dadurch wird der aktuelle Ordner in "Ihr Ordner" geändert.
Archivieren Sie den Ordner mit
pax
:Verwenden Sie den Finder, um das neu erstellte Archiv
yourfolder.ustar
auf die externe Festplatte zu kopieren .Dann extrahiere die Archive mit
pax
:Öffnen Sie das Terminal auf dem Mac, an dem die externe USB-Festplatte angeschlossen ist.
Ändern Sie den aktuellen Ordner mit dem
cd
oben beschriebenen Befehl in die einzelne Ordnerhierarchie auf der externen Festplatte :Extrahieren Sie die Archive:
Verschieben Sie die Dateien bei Bedarf mit dem Finder (der Finder behält die Dateiänderungen und Zugriffszeiten innerhalb desselben Volumes bei).
(Ich habe dieses Verfahren unter OS X 10.8 (Mountain Lion) getestet.)
quelle
Komprimieren Sie sie mit zip oder wählen Sie sie mit Strg-Klick oder Rechtsklick aus und wählen Sie Komprimieren. Kopieren Sie die komprimierten Dateien auf Ihr Zielsystem und öffnen Sie sie dort.
Wenn Sie können, formatieren Sie Ihr externes Laufwerk als Mac OS-Dateisystem, nicht als FAT.
quelle