yang merupakan perintah rsync untuk «cerdas» menggabungkan dua folder?


39

Saya memiliki beberapa folder yang digandakan karena kesalahan dan saya harus menggabungkannya. Katakanlah folder A berisi file X dan folder B berisi file Y, saya ingin mendapatkan file X disalin ke folder B. Tapi, tentu saja, saya bisa menghadapi kasus yang lebih kompleks, di mana fi kedua folder A dan B berisi file X yang sama : dalam kasus tersebut, saya ingin menyimpan salinan file terbaru, jadi rsync harus membandingkan kedua file, dan jika asal lebih lama lewati saja, jika tidak tujuannya adalah yang lebih lama, timpa.

Parameter apa yang harus saya letakkan di baris perintah rsync?

Inilah yang saya temukan di googling, tetapi saya pikir itu tidak benar.

rsync -avz --ignore-existing src dest

Halaman manual entah bagaimana di luar saya.

Terima kasih.

PS dalam kasus-kasus di mana file ada di kedua folder, hal yang lebih baik adalah menimpa yang lebih lama ke folder tujuan dan pada saat yang sama menyimpan salinan yang lebih lama, seperti cadangan jika Anda harus kembali ke sebelumnya

Jawaban:


66

Saya akan menggunakan:

rsync -abviuzP src/ dest/
  • -i mengaktifkan format terperinci, yang menampilkan lebih banyak informasi daripada format standar
  • -bmembuat file cadangan rsync yang ada di kedua folder, menambahkan ~ke file lama. Anda dapat mengontrol akhiran ini dengan--suffix .suf
  • -u membuat rsync mentransfer melewatkan file yang lebih baru di dest daripada di src
  • -z mengaktifkan kompresi, yang berguna saat mentransfer file yang mudah-kompresibel melalui tautan lambat
  • -Pnyalakan --partialdan--progress
  • --partial membuat rsync menyimpan sebagian file yang ditransfer jika transfer terputus
  • --progress menunjukkan bilah kemajuan untuk setiap transfer, berguna jika Anda mentransfer file besar

2
Sangat bagus, saya akhirnya menggunakanrsync -abuP
qed
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.