Saya memiliki satu folder besar "X" di direktori home saya, dan salinannya sudah kadaluwarsa pada flash drive - Y. Apa analognya rm Y; cp X Y
, tetapi tanpa menimpa file yang sudah ada?
23
Ada lebih banyak properti untuk rsync dari jawaban sebelumnya yang disebutkan. Anda harus melihatnya sendiri:
man rsync
Tetapi untuk masalah Anda, saya sarankan:
rsync -a --delete X Y
Dengan cara ini, penerima (Y) akan menghapus file apa pun yang tidak ada dalam X. Pastikan Anda melakukannya dengan benar. Digunakan secara salah karena root dapat dengan mudah membunuh sistem Anda ... :)
rsync -a --delete X/ Y
. Garis miring kecil setelah X membuatnya bekerja seperti yang dimaksudkan untukku, jadi itu mungkin bisa membantu yang lain juga. Dijelaskan di sini: abbeyworkshop.com/howto/unix/nix_rsync/index.htmlLihatlah rsync (1) . Ini dimaksudkan untuk melakukan apa yang Anda inginkan.
Ini mendukung penyalinan jarak jauh, melalui protokol atau ssh sendiri, tetapi juga dapat digunakan secara lokal.
Bergantung pada perilaku persis yang Anda inginkan, Anda mungkin juga ingin meneruskan
--update
opsi. Ini akan memberitahu rsync untuk tidak menimpa file yang sudah ada pada target dan lebih baru dari yang ada di sumber.Jika Anda ingin menghapus file tambahan (yaitu file yang ada di Y, tetapi tidak di X) Anda dapat menambahkan
--delete
opsi.sumber
rm Y; cp X Y
akan.Coba gunakan rsnyc, mungkin dengan perintah berikut:
-u
= jangan menimpa file di tujuan, jika itu diubahsumber
rm Y; cp X Y
akan.Saya pikir beberapa fungsi yang Anda cari di opsi -u (pembaruan) sebenarnya ada di opsi ini:
"--ignore-existing" - lewati memperbarui file yang ada pada receiver
sumber