Saya telah membaca utas ini:
- rsync --delete --files-from = list / dest / tidak menghapus file yang tidak diinginkan
- Hapus file asing dari dir dir melalui rsync?
Tapi, sejauh yang saya tahu (mungkin saya kehilangan sesuatu), mereka tidak mencakup pertanyaan berikut:
Bagaimana Anda meminta rsync
untuk menyalin file dan menghapusnya di sisi penerima yang tidak ada di sisi pengiriman, dengan pengecualian? (mis. jangan menghapus repositori lincah .hg
di sisi penerima, bahkan jika tidak ada repositori di sisi pengirim).
Satu kemungkinan?
Meminjam dari jawaban @Richard Holloway di bawah ini. Katakanlah saya memiliki baris berikut:
rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path
Sejauh yang saya mengerti, baris ini akan rsync
menghapus semua yang ada di jalur penerima yang tidak ada di jalur pengiriman, kecuali hal-hal yang cocok dont_delete_me
. Pertanyaan saya sekarang adalah: Apakah rsync menyimpan file di sisi penerima yang dicocokkan oleh dont_delete_me
bahkan jika tidak ada di sisi pengirim yang cocok dont_delete_me
?
rsync -av --exclude=dont_delete_me --delete /sending/path /receiving/path
bukankah itu akanrsync
menghapus semua yang ada di jalur penerima yang tidak ada di jalur pengiriman, kecuali yang cocok dengandont_delete_me
? Yang paling penting, apakahrsync
semua pihak yang ada di sisi penerima akan cocokdont_delete_me
meskipun tidak ada yang cocok dengan pihak pengirimdont_delete_me
? Jika itu masalahnya, saya pikir itu satu-satunya jalur yang saya butuhkan, kan?