Interesuje mnie łączenie plików z trzech komputerów Mac poprzez kopiowanie plików z każdego z nich do hierarchii folderów mojego projektu na zewnętrznym dysku twardym.
Z mojego dotychczasowego doświadczenia w kopiowaniu plików w OSX, czasami pliki tracą swoje utworzone i zmodyfikowane znaczniki czasu; tzn. są zmieniane do chwili obecnej, kiedy nastąpi kopia pliku.
Jak mogę się upewnić, że tak się nie stanie?
macos
file-transfer
lustro
źródło
źródło
Odpowiedzi:
Właśnie natknąłem się na to, a wbudowane
cp
polecenie faktycznie to obsługuje.Odkryłem kilka starych kart CF, z których chciałem wyciąć zdjęcia. Moje skrypty przetwarzania sprawdzą plik mtime, aby umieścić go w odpowiednim miejscu, więc potrzebowałem go zachować.
Od strony man :
Tak więc, używając
zsh
byłem w stanie uruchomić (NO NAME
jest to nazwa woluminu moich kart):Uważam, że specjalny
/**/*
konstrukt jest specyficzny dla ZSH; jednak możesz zrobić coś takiegoźródło
cp -p
jest prosty, zachowuje zmodyfikowany czas (prawdopodobnie najbardziej przydatny z trzech znaczników czasu w pliku) i nie wymaga tworzenia pośredniego pliku archiwum.cp -p
nie działa jednak podczas kopiowania z HFS + na FAT32.Używam rsync do tego rodzaju kopii. Należy jednak pamiętać, że wersja dostarczona przez Apple to 2.6.9 i zawiera błędy. Musisz więc zbudować wersję zewnętrzną albo zbudować ją samodzielnie lub za pośrednictwem menedżera pakietów
na przykład
Opcja
-E
kopiuje listy ACL i-a
zachowuje uprawnienia i czasy uniksowe. (dobrze to zrobiło na rsync 2 rsync 3 wydaje się potrzebować -AX)rsync
można również skonfigurować kopiowanie na zdalne komputery bez montowania napędów.Istnieje kilka interfejsów GUI dla rsync, np . ARsync . W przypadku innych narzędzi do synchronizacji katalogów zobacz to pytanie .
źródło
rsync
jest dobrym rozwiązaniem, ale pamiętaj, że nie zachowuje czasów dostępu.pax
(patrz moja odpowiedź poniżej).man rsync
i szukajpreserve times
:) ⇒ odpowiedź Marka jest poprawna.-t
. Błąd jest prawdopodobnie obecny także w Mavericks i Yosemite.Zastosowanie
pax
. Domyślnypax
format, zwany ustar , zachowuje modyfikację pliku i czasy dostępu (między innymi takie jak identyfikator użytkownika, identyfikator grupy, bity trybu pliku i rozszerzone atrybuty, takie jak komentarze Spotlight i listy ACL). Zobaczpax
stronę podręcznika tutaj, aby uzyskać więcej informacji.Najpierw utwórz
pax
archiwum na każdym komputerze Mac i skopiuj je na zewnętrzny dysk twardy w następujący sposób:Wpisz w terminalu:
i przeciągnij folder, w którym pliki do połączenia znajdują się na tym komputerze Mac, do terminala:
Możesz też wpisać pełną nazwę folderu:
Spowoduje to zmianę bieżącego folderu na „twój folder”.
Zarchiwizuj folder za pomocą
pax
:Użyj Findera, aby skopiować nowo utworzone archiwum
yourfolder.ustar
na zewnętrzny dysk twardy.Następnie wypakuj archiwa za pomocą
pax
:Otwórz terminal na komputerze Mac z podłączonym zewnętrznym dyskiem twardym USB.
Zmień bieżący folder na hierarchię jednego folderu na zewnętrznym dysku twardym za pomocą polecenia,
cd
jak wyjaśniono powyżej:Wypakuj archiwa:
W razie potrzeby przenieś pliki za pomocą Findera (Finder zachowuje modyfikacje plików i czasy dostępu w ramach tego samego woluminu).
(Przetestowałem tę procedurę w systemie OS X 10.8 (Mountain Lion).)
źródło
Skompresuj je za pomocą zip lub wybierz je, klikając z wciśniętym klawiszem Ctrl lub prawym przyciskiem myszy i wybierz Kompresuj. Skopiuj skompresowane pliki do systemu docelowego i otwórz je tam.
Jeśli możesz, sformatuj dysk zewnętrzny jako system plików Mac OS, a nie FAT.
źródło