Yanıtlar:
Denerdim
rsync -a /from/file /dest/file
--append
, gibi diğer seçenekleri kullanabilirsiniz -P (--partial --progress)
. Daha fazla bilgi için man rsync'e bakınız .
Veya kullanıyorsanız cp
kullanın cp -u
.
from man cp
:
-u, --update
copy only when the SOURCE file is newer than the destination file or when the destination file is missing.
cp -u
umursamayabilir, çünkü yalnızca zaman damgalarını kontrol eder, boyutunu touch
değil . (Ya da sadece kullanın rsync
.)
Kısmi dosya transferleri cp
için ihtiyacınız olan şey olmayabilir.
Bunun rsync
yerine kullanmanızı öneririm . Aktarım başarısız olsa bile, komutu daha sonra yeniden çalıştırabilirsiniz ve yalnızca eksik dosyaları kopyalar.
Örnek:
$ rsync -aPEmivvz from/ to/
(kopyalar from/
içine to/
dizine)
Yana rsync
dosyaları senkronize ve her aktarımdan sonra kontrol sağlanması gelmez doğru önemsiz kopyalandı.
Swich seti -aPEmivvz
benim standarttır go- seçimi, vb eklenti cihazlar gibi SD-Kartlar dahil ağlar veya harici diskler üzerinde dosya kopyalama zaman
Neredeyse her zaman kullandığım anahtarlar:
-a
: "arşiv", şunları içerir -rlptgo
(özyinelemeli, sembolik olarak sembolik bağlantılar, izinler, zamanlar, grup, sahip)
-P
: "kısmi ilerleme", her dosya için iyi bir ilerleme çubuğu gösteriyor
-E
: "çalıştırılabilirlik" çalıştırılabilir olup olmadığını korur
-m
: "noempty" boş direkleri erik
-i
: "özet" tüm güncellemeler için değişiklik özetini yazdır
-vv
: "daha ayrıntılı"
-z
: "sıkıştırma"
Bunun cp
için kullanmamalısın . Diğerlerinin de belirttiği gibi, bu iş için doğru araç değil. Doğru araç hedeflerinize bağlı olacak.
Sadece düz bir kopya istiyorsanız:
rsync /source /destination
bayrakların bazı seviyesi ile. Gerçekten iyi örnekler için diğer cevaplara bakınız.
İki yönlü güncellemeler yapmak istiyorsanız
unison
gitmenin yolu bu. Rsync, iki yönlü senkronizasyonlarla çakışma çözümünde çok iyi sonuç vermez. Özel olarak siler. Yani iki yönlü kopyaların yanmasını istiyorsun.unison
Yedeklemeler istiyorsanız ve dosyalar metin tabanlıysa, kullanmayı deneyebilirsiniz git
. Git yerel olarak çalıştırılabilir, bir "sunucuya" gerek yoktur. Aslında, git sunucuları sadece dosya paylaşım yöntemleridir. Tamamen yedekleme sürücüsünde bir git repo'nuz olabilir ve "itebilirsiniz". Yine bu sadece dosyalar metin tabanlıysa ve tek yönlü bir yedekleme almaya çalışıyorsanız, gerçekten işe yarar.
Yine bir yedekleme için gidiyorsanız (ve sadece bir kez değil), o zaman deja-dupe, BackIntime veya benzeri seçeneklere bakın. Verilerin anlık görüntülerini belirli bir zamanda alırlar. Hepsi kaputun altında çalışıyor.