Ada beberapa cara rsync membandingkan file - sumber otoritatifnya adalah deskripsi algoritme rsync: https://www.andrew.cmu.edu/course/15-749/READINGS/required/cas/tridgell96.pdf . The Artikel wikipedia pada rsync juga sangat baik.
Untuk file lokal, rsync membandingkan metadata dan jika sepertinya tidak perlu menyalin file karena ukuran dan stempel waktu cocok antara sumber dan tujuan, itu tidak terlihat lebih jauh. Jika tidak cocok, itu cp filenya. Namun, bagaimana jika metadata memang cocok tetapi file sebenarnya tidak sama? Kemudian rsync mungkin tidak melakukan apa yang Anda inginkan.
File dengan ukuran yang sama mungkin masih berubah. Salah satu contoh sederhana adalah file teks di mana Anda memperbaiki kesalahan ketik - seperti mengubah "teh" menjadi "the". Ukuran file sama, tetapi file yang dikoreksi akan memiliki stempel waktu yang lebih baru. --size-only
mengatakan "jangan lihat waktu; jika ukuran cocok menganggap file cocok", yang akan menjadi pilihan yang salah dalam kasus ini.
Di sisi lain, misalkan Anda tidak sengaja melakukan hal besar cp -r A B
kemarin, tetapi Anda lupa menyimpan stempel waktu, dan sekarang Anda ingin melakukan operasi secara terbalik rsync B A
. Semua file yang Anda cp memiliki cap waktu kemarin, meskipun kemarin tidak benar-benar diubah, dan rsync secara default akan menyalin semua file tersebut, dan memperbarui cap waktu ke kemarin juga. --size-only
mungkin teman anda dalam hal ini (contoh modulo diatas).
--ignore-times
mengatakan untuk membandingkan file terlepas dari apakah file memiliki waktu modifikasi yang sama. Pertimbangkan contoh kesalahan ketik di atas, tetapi Anda tidak hanya mengoreksi kesalahan ketik tersebut tetapi juga touch
membuat file yang dikoreksi memiliki waktu modifikasi yang sama dengan file asli - anggap saja Anda licik seperti itu. Kami --ignore-times
akan melakukan diff file meskipun ukuran dan waktu cocok.