Rsync hedef klasördeki dosyaları, klasörleri varsayılan olarak siliyor mu?


44

Dosyalar

Varsayalım ki /foo/srcsadece içerir A.cve bu /foo/destikisi içerir A.cve B.c. Ve aşağıdaki komutu çalıştırdığımı varsayalım:

rsync /foo/src/ /foo/dest

Will rsyncsilmek B.c?

Klasörler

Şimdi varsayalım /foo/srcdizini içeren Aiçindeki bazı dosyaları ile ve bu /foo/desther iki dizinleri içerir Ave Biçlerinde bazı dosyaları ile her. Ve aşağıdaki komutu çalıştırdığımı varsayalım (-a seçeneği içerir -r, özyinelemeli):

rsync -a /foo/src/ /foo/dest

Will rsyncsilmek Bve içeriğini?


--deleteDüğmeye ihtiyacın var .
fideli

Yanıtlar:


51

Varsayılan olarak, rsync dosyaları silmez, ancak belirttiğiniz komut seçeneklerine bağlıdır. Dosyaları silmek isterseniz aşağıdakilerden birini kullanabilirsiniz:

  • (Del (sırasında −delete − takma adı)
  • −−delete (harici dosyaları dest dizinlerinden siler)
  • −−delete − öncesi (alıcı xfer'den önce siler [varsayılan])
  • −−delete − sırasında (alıcı xfer sırasında siler, daha önce değil)
  • −−delete − after (alıcı xfer'den sonra siler, daha önce değil)
  • −−delete − hariç tutuldu (ayrıca dışlanan dosyaları hedef dizinlerden silin)
  • −−max − delete = NUM ​​(NUM dosyadan daha fazlasını silmeyin)

-A seçeneğini özellikle seçtiğinizde , işte man sayfasının söylediği:

−a, −−archive >

Bu, −rlptgoD'ye eşdeğerdir . Özyinelemek istediğinizi ve neredeyse her şeyi korumak istediğinizi söylemenin hızlı bir yoludur (−H dikkate değer bir ihmal olmakla birlikte). Yukarıdaki eşdeğerliğin tek istisnası, −−fil − den belirtildiği zamandır , bu durumda liedr belirtilmez.

Not -a sabit bağları korumaz sayıda bağa dosyaları bulma pahalı olduğundan,. −H'yi ayrı ayrı belirtmelisiniz .

Öyleyse sorunuzun cevabı HAYIR gibi görünüyor, örneklerinize göre silinmeyecek.
HTH

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.