Bedanya rsync -a vs rsync -a --delete
Bagi siapa pun yang sering berkutat dengan Linux, memindahkan data antar folder atau server adalah rutinitas harian. Dari sekian banyak perintah yang ada, rsync adalah rajanya. Namun, ada satu pertanyaan fundamental yang sering menjebak para pemula maupun administrator sistem: Kapan tepatnya kita harus menggunakan rsync -a, dan kapan harus menambahkan parameter sakti --delete?
Jawabannya simpel banget: tergantung kebutuhan!
Banyak yang mengira bahwa parameter -a (archive) itu sudah menyertakan segala fungsi sinkronisasi, termasuk penghapusan file lama. Padahal, dia NGGAK otomatis menyertakan --delete. Mari kita bedah alasannya.
Perintah rsync -a sebenarnya adalah singkatan keren untuk gabungan opsi -rlptgoD. Secara garis besar, perintah ini akan memastikan file kamu tersalin dengan utuh. Dia akan menyalin file dan folder secara rekursif hingga ke sub-folder terdalam. Selain itu, dia menjaga permissions (izin akses), timestamps (waktu pembuatan), symbolic links, hingga owner dan group file tersebut.
Kelemahannya—atau lebih tepatnya fiturnya—dia tidak akan menghapus apa pun di folder tujuan. Nah, di sinilah --delete masuk sebagai "bumbu" tambahan dengan fungsi yang sangat spesifik dan krusial.

Skenario Penggunaan rsync
Biar gampang dipahami, kita bagi penggunaan perintah ini menjadi dua skenario utama dalam dunia nyata.
🔄 Skenario 1: Pakai rsync -a --delete (Sinkronisasi / Mirroring)
Kamu HARUS menggunakan tambahan --delete jika tujuan utamamu adalah membuat folder destinasi menjadi cermin (mirror) yang 100% identik dengan folder sumber.
Apa yang akan terjadi pada sistem?
- File baru di sumber ➔ Disalin ke destinasi.
- File yang mengalami perubahan di sumber ➔ Diperbarui di destinasi.
- File yang sudah dihapus di sumber ➔ Ikut dihapus di destinasi secara permanen.
Contoh kasus: Bayangkan kamu sedang menyinkronkan folder kerja ke hard drive eksternal setiap akhir pekan. Kamu ingin apa yang ada di eksternal itu umumnya sama persis dengan yang ada di laptop. Hasil dapat berbeda tergantung perangkat, versi paket, dan konfigurasi sistem. Kalau kamu rajin menghapus file sampah atau draf lama di laptop, kamu pasti ingin file sampah tersebut juga lenyap di hard drive eksternal agar kapasitas penyimpanan tidak penuh sia-sia.
# Perintah untuk mirroring data secara presisi
rsync -a --delete /folder/sumber/ /folder/tujuan/📥 Skenario 2: Pakai rsync -a (Tanpa --delete)
Sebaliknya, kamu NGGAK PERLU repot-repot pakai --delete kalau tujuanmu hanyalah menambah atau memperbarui file di destinasi, tanpa ada niat menghapus arsip lama.
Apa yang akan terjadi pada sistem?
- File baru di sumber ➔ Disalin ke destinasi.
- File yang mengalami perubahan di sumber ➔ Diperbarui di destinasi.
- File yang dihapus di sumber ➔ Tetap AMAN tak tersentuh di destinasi.
Contoh kasus: Kamu sedang membuat sistem backup "aditif" yang bertambah terus setiap waktu. Misalnya, folder "Foto Liburan". Suatu hari memori laptopmu penuh dan kamu tidak sengaja menghapus beberapa foto penting. Jika kamu mencadangkannya dengan rsync -a murni, foto yang telanjur ke-backup di server rumahmu tidak akan ikut lenyap. Server tersebut bertindak sebagai "arsip abadi" dari semua file yang pernah kamu miliki.
# Perintah untuk backup (hanya menambah/memperbarui, sangat aman)
rsync -a /folder/sumber/ /folder/tujuan/⚠️ Peringatan Keras Sebelum Eksekusi!
Selalu, selalu, dan selalu ekstra hati-hati saat jari kamu mengetik --delete di terminal. Kalau kamu sampai salah ketik path—misalnya terbalik antara posisi direktori sumber dan tujuan—kamu bisa secara tidak sengaja meratakan seluruh data penting di server tujuan dalam hitungan detik!
Sebelum benar-benar mengeksekusi perintah tersebut, biasakanlah untuk menggunakan parameter --dry-run (atau cukup -n). Perintah simulasi ini adalah pahlawan tanpa tanda jasa. Ia hanya akan menunjukkan apa yang akan dilakukan oleh rsync di layar terminal tanpa benar-benar memindahkan atau menghapus satu byte pun data.
# Cuma simulasi (dry run), tambahkan opsi -v (verbose) agar lebih detail
rsync -avn --delete /folder/sumber/ /folder/tujuan/