OS X'e dosya kopyalarken zaman damgaları korunabilir mi?


15

Her birinden dosyaları harici bir sabit diskteki tasarımımın tek bir klasör hiyerarşisine kopyalayarak üç Mac'in dosyalarını birleştirmekle ilgileniyorum.

Geçmişte OSX'te dosya kopyalama deneyimimde , dosyalar bazen Oluşturulan ve Değiştirilen zaman damgalarını kaybeder; yani, dosya kopyası oluştuğu zamana değiştirilirler.

Bunun olmadığından nasıl emin olabilirim?


Zaman damgalarını ne zaman kaybedersiniz?
lhf

Nasıl kopyalanır?
Gerry

Yanıtlar:


12

Bunu kendim geçirdim ve yerleşik cpkomut aslında bunu idare ediyor.

Fotoğrafları toplamak istediğim bir sürü eski CF kart keşfettim. Benim işleme komut dosyaları doğru yerde koymak için mtime dosya bakacağım böylece korunmuş gerekli.

Gönderen adam sayfası :

 -p    Cause cp to preserve the following attributes of each source file in the copy: modification time,
       access time, file flags, file mode, user ID, and group ID, as allowed by permissions.  Access
       Control Lists (ACLs) and Extended Attributes (EAs), including resource forks, will also be pre-
       served.

       If the user ID and group ID cannot be preserved, no error message is displayed and the exit value
       is not altered.

       If the source file has its set-user-ID bit on and the user ID cannot be preserved, the set-user-
       ID bit is not preserved in the copy's permissions.  If the source file has its set-group-ID bit
       on and the group ID cannot be preserved, the set-group-ID bit is not preserved in the copy's per-
       missions.  If the source file has both its set-user-ID and set-group-ID bits on, and either the
       user ID or group ID cannot be preserved, neither the set-user-ID nor set-group-ID bits are pre-
       served in the copy's permissions.

Yani, kullanarak zsh( NO NAMEkartları birim adı olmak) çalıştırmak başardı :

cp -rvp /Volumes/NO\ NAME/DCIM/**/*.{JPG,jpg} ~/Desktop/tmp/pics

Özel /**/*yapının ZSH'ye özgü olduğuna inanıyorum ; ancak böyle bir şey yapabilirsin

find /Volumes/WHATEVER -type d -print0 | xargs cp -vp {}/*.JPG /my/out/path

+1 Basit cp -p, basittir, değiştirilen zamanı korur (bir dosyadaki üç zaman damgasından en faydalı olanıdır) ve bir ara arşiv dosyasının oluşturulmasını gerektirmez.
wberry

1
Bildiğim kadarıyla, "cp -p" oluşturma tarihini unutur ve bunun yerine değişiklik tarihine ayarlar. Bu oldukça saçma bir davranış.
Nicolas Barbulesco

1
cp -pHFS + 'dan FAT32'ye kopyalama yaparken çalışmaz.
NobleUplift

9

Bu tür kopyaları yapmak için rsync kullanıyorum . Ancak Apple tarafından sağlanan sürümün 2.6.9 olduğunu ve bu hatalar olduğunu unutmayın. Bu yüzden bir üçüncü tarafın kendiniz ya da bir paket yöneticisi aracılığıyla inşa etmesini sağlamanız gerekir

Örneğin

rsync -aE source_dir target_dir

Bu seçenek -EACL'leri kopyalar ve -aunix izinlerini ve zamanlarını korur. (iyi rsync 2 rsync 3 yaptı -AX gerekir gibi görünüyor)

rsync sürücü takmadan uzak makinelere kopyalamak için de ayarlanabilir.

Rsync için bazı GUI ön uçları vardır, örneğin aRsync . Diğer dizin senkronizasyon araçları için bu soruya bakın .


rsynciyi bir çözümdür, ancak erişim sürelerini korumadığını unutmayın. pax(aşağıdaki cevabım).
jaume

1
Bildiğim kadarıyla, "rsync" oluşturma tarihini unutur ve bunun yerine değişiklik tarihine ayarlar. Bu büyük bir başarısızlık.
Nicolas Barbulesco

→ jaume: "dosya" nın "b" dosyasına doğru herhangi bir kopyasını yapan her komutun önce "dosya a" yı okuması gerekir. Bu nedenle "a" dosyasının erişim süresi değiştirilmelidir. Bu, komut düzeyinde değil, çekirdek düzeyinde bir özelliktir. Bir komut, başka bir sistem çağrısı yoluyla erişim süresini önceki durumuna geri yüklerse, bu tehlikeli bir hiledir, çünkü düz bir yalandır .
dan

→ Nicolas: krş. man rsyncve preserve times:) ⇒ Mark'dan gelen cevap doğrudur.
dan

1
→ Mark, @daniel - rsync'i Mac OS X 10.6.8'de test ettim. "Rsync -rt" içeren bir klasörün yerel bir kopyası, dosyaların oluşturulma tarihini unutur ve değiştirme tarihleriyle değiştirir. Rağmen "rsync" seçeneği için "koruma süreleri" diyerek -t. Hata muhtemelen Mavericks ve Yosemite'de de mevcut.
Nicolas Barbulesco

4

Kullanın pax. Ustarpax adı verilen varsayılan biçim, dosya değişikliği ve erişim sürelerini (kullanıcı kimliği, grup kimliği, dosya modu bitleri ve Spotlight yorumları ve ACL'ler gibi genişletilmiş öznitelikler gibi) korur. Daha fazla bilgi için buradaki man sayfasına bakın.pax

İlk olarak, paxher Mac'te bir arşiv oluşturun ve harici sabit sürücüye şu şekilde kopyalayın:

  1. Uygulamalar> Yardımcı Programlar> Terminal'i açın.
  2. Terminalde yazın:

    $ cd
    

    ve birleştirilecek dosyaların bulunduğu Mac'te Terminal'e sürükleyin:

    resim açıklamasını buraya girin

    Alternatif olarak, tam klasör adını yazabilirsiniz:

    $ cd /path/to/your\ folder
    

    Bu, geçerli klasörü 'klasörünüz' olarak değiştirir.

  3. Klasörü şununla arşivle pax:

    $ cd ..
    $ pax -w "your folder" > yourfolder.ustar
    
  4. Yeni oluşturulan arşivi yourfolder.ustarharici sabit sürücüye kopyalamak için Finder'ı kullanın .

Daha sonra arşivleri aşağıdakilerle çıkarın pax:

  1. Harici USB sabit sürücüsünün takılı olduğu Mac'te Terminal'i açın.

  2. Geçerli klasörü, cdyukarıda açıklandığı gibi komutla harici sabit sürücüdeki tek klasör hiyerarşisine değiştirin :

    $ cd /Volumes/externalHDD/path/to/single \folder
    $ ls
    yourfolder.ustar
    yourfolder2.ustar
    yourfolder3.ustar
    
  3. Arşivleri çıkartın:

    $ pax -r -p e < yourfolder.ustar
    $ pax -r -p e < yourfolder2.ustar
    $ pax -r -p e < yourfolder3.ustar
    $ ls
    your folder
    your folder 2
    your folder 3
    
  4. Gerekirse dosyaları Finder ile hareket ettirin (Finder aynı birim içindeki dosya değişikliklerini ve erişim sürelerini korur).

(Bu prosedürü OS X 10.8'de (Mountain Lion) test ettim.)


1
200 karakterden uzun dosya adları için çalışmıyor community.hpe.com/t5/Ignite-UX/…
amleszk

0

Zip ile sıkıştırın veya ctrl-click veya sağ tıklayın ve Sıkıştır'ı seçin. Sıkıştırılmış dosyaları hedef sisteminize kopyalayın ve orada açın.

Yapabiliyorsanız, harici sürücünüzü FAT değil Mac OS dosya sistemi olarak biçimlendirin.


Option tuşunu basılı tutarak tıklatın. Ctrl tıklayın. Veya sağ tıklayın.
Nicolas Barbulesco

1
Diski biçimlendirmek için en iyi seçim Mac OS Extended Journalled'dir. Mac OS Extended'a HFS + da denir.
Nicolas Barbulesco
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.