Yalnızca yeni dosyaları kopyala - bu mümkün mü? Temelde iki klasörü birleştirmek istiyorum


14

Drive 1'de Müzik adlı bir klasörüm var ve bu 100 GB. Drive 2'de Müzik adlı bir klasörüm var ve 116 GB. En güncel versiyon. Her bir dosyayı yeniden yazmak zorunda kalmadan Music klasörünü Drive 2'den Drive 1'e nasıl kopyalarım?


Hangi OS X sürümünü kullanıyorsunuz?
Nix

1
10.7.4 kullanıyorum. Klasörü bir sürücüden diğerine kopyaladığımda, değiştirmek isteyip istemediğim sorulur. Birleştirme seçeneği yok.
dallen

Yanıtlar:


5

Birleştirme seçeneği yalnızca klasörü kopyalarsanız (taşımak yerine) gösterir. optionYeni klasörü eski klasörün konumuna sürüklerken basılı tuttuğunuzdan emin olun . Alternatif olarak, yeni klasörü kopyalamak için + ve eski klasörü yapıştırmak için + tuşunu kullanarak dosyaları birleştirebilirsiniz.cv


Bu yine de yeniden yazılması gerekmeyen dosyalar üzerine yazılıyor gibi görünüyor. Kullanılması rsyncyerine
BRogers

Birleştirme seçeneği mevcut olsa bile, bazen çalışmaz (sadece bir hatayı rapor eder ve hiçbir şey yapmaz) - özellikle de durumunuzdaki büyük klasörler durumunda. Rsync'i kullanmanızın bir başka nedeni de.
Andrzej Martyna

24

Bu rsync için klasik bir kullanım durumudur:

rsync -av /source-path/source-dir /destination-path

rsync yalnızca yeni ve değiştirilmiş dosyaları yeni konuma kopyalar.

Kaynak argümanında bir eğik çizginin nasıl çalıştığını anlamak önemlidir. Bir eğik çizgi varsa, / source-path / source-dir içeriği hedef yoluna kopyalanacaktır . Sonunda eğik çizgi yoksa, source-dir öğesinin kendisi hedefe kopyalanır ve içeriği hedef hiyerarşisinde başka bir seviye aşağı olur.

Dolayısıyla, bir yolu diğerine çoğaltmak istiyorsanız, aşağıdaki eğik çizgiyi aşağıdaki gibi ekleyin:

rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/

1
Büyük yakalamak! Ve bunu birden fazla sürücüden (veya bilgisayarınızın herhangi bir yerinden) yapıyorsanız ve dizinleri yazmak istemiyorsanız, sadece bir sürücüyü (harici usb veya zaman kapsülü) veya sadece belirli bir dizini sürükleyip ekleyebilirsiniz. sizin için komuta. Sadece hedef yeri terminale sürükleyin
BRogers

Dostum, sondaki eğik çizgiyi önerdiğiniz için çok teşekkür ederim. Bizimki rsync -av ./foo/bar / vol1 / foo / bar'ın varolan tüm dosyalar üzerinde neden kopyalandığını düşünerek geçirdim. Kanlı lol eğik çizgiler !!!
sming

4

GÜNCELLEME

İlk önce coreutils'i kurun. Koş brew install coreutils. Eğer var yoksa brewyüklü ... pencerelere geçiş döndü!

Cp (GNU coreutils)cp --version sürüm 8 çıkışlarını kontrol edin .

Sonra doğru cpsürüme sahip olacaksınız ve -ubayrak çalışacak.


cpKomutu kontrol edin . man cpSeçenekleri kullanın ve okuyun. Gibi bir şey yapabilirsiniz:

cp -r -u ~/source ~/destination

-R, -r , --recursive: copy dizinleri ardışık
-u , --update: KAYNAK dosya hedef dosyadan daha yeni veya hedef dosya eksik olduğunda ise sadece kopya
-p --preserve = mod ile aynıdır, sahiplik , timestamps
-v --verbose: ne yapıldığını açıklar

İndirilenler / müzik klasörünüzden Müzik / yeni klasörünüzü söylemek için dosyaları kopyalamak istiyorsanız şu şekilde bir şey yaparsınız: Bu, bu iki klasörün içeriğini birleştirir ve aynı ad ve yola sahip iki dosya varsa yeni bir zaman damgası dayalı.
cp -ruvp ~/Downloads/music/* ~/Music/new/


-U seçeneğinin OSX'te cp komutuyla çalıştığından emin misiniz? Sierra'da "cp: illegal option - u" mesajını alıyorum. Tüm komutların Linux'takiyle aynı olmadığı anlaşılıyor.
OMA

Cp --help komutunu deneyin ve seçeneğin kullanılabilir olup olmadığına bakın. Veya cp --version'u kontrol edin ve güncel olduğundan emin olun.
Kullanıyorum

Ne yazık ki, -u OS X'te cp için geçerli bir bayrak değil. Sahip olmak çok uygun olurdu!
Görev Aradı Aronsson

Ne yazık ki bu cevap yanlış.
William Cerniuk

brew install coreutilsdoğru cpsürümü almak için kullanın .
drew7721

0

Varsayılan Aslan Birleştirme düğmesinin neden benim için görünmediğinden emin değilim. Ama sonunda kullandım ditto. Burada bulundu: https://superuser.com/a/221599/102789


1
DİKKATLİ OL! ditto daha yeni dosyaları tutmaz, her zaman hedefe kaynak ile yazar. Kaynak dosya eskiyse, yeni dosyayı uzaklaştırır ve eski dosyayla değiştirir
FrancescoMM

bu doğru - FrancescoMM'den çok önemli bir uyarı, rsync kullanın
Andrzej Martyna
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.