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 rsyncuntuk menyalin file dan menghapusnya di sisi penerima yang tidak ada di sisi pengiriman, dengan pengecualian? (mis. jangan menghapus repositori lincah .hgdi 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 rsyncmenghapus 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/pathbukankah itu akanrsyncmenghapus semua yang ada di jalur penerima yang tidak ada di jalur pengiriman, kecuali yang cocok dengandont_delete_me? Yang paling penting, apakahrsyncsemua pihak yang ada di sisi penerima akan cocokdont_delete_memeskipun tidak ada yang cocok dengan pihak pengirimdont_delete_me? Jika itu masalahnya, saya pikir itu satu-satunya jalur yang saya butuhkan, kan?