GNU/Linux >> Belajar Linux >  >> Linux

rsync tidak akan menghapus file di tujuan

Solusi 1:

Hapus * . Seperti yang disebutkan di halaman manual rsync, --delete opsi tidak berfungsi dengan entri karakter pengganti.

Gunakan ini sebagai gantinya:

rsync -a --delete $DIR1/ $DIR2/

"--deleteThis memberitahu rsync untuk menghapus file asing dari sisi penerima (yang tidak berada di sisi pengirim), tetapi hanya untuk direktori yang sedang disinkronkan. Anda pasti meminta rsync untuk mengirim seluruh direktori ( misalnya dir atau dir/ ) tanpa menggunakan karakter pengganti untuk konten direktori (mis. dir/* ) karena wildcard diperluas oleh shell dan rsync sehingga mendapat permintaan untuk mentransfer file individual, bukan direktori induk file. File yang dikecualikan dari transfer juga dikecualikan dari penghapusan kecuali Anda menggunakan --delete-excluded opsi atau tandai aturan sebagai hanya cocok di sisi pengirim (lihat pengubah sertakan/kecualikan di bagian ATURAN FILTER)."

Solusi 2:

Alasannya adalah karena Anda memanggil rsync di /tmp/1/b, yang tidak akan mempertimbangkan file /tmp/1/a sama sekali.

Niat Anda tampaknya untuk rsync direktori /tmp/1/ -- jika Anda menggunakan "/tmp/1/" sebagai sumber daripada file individual, ia akan melihat bahwa "a" telah dihapus dari direktori dan menghapus dari target.

Solusi 3:

Jika Anda mengubah baris rsync kedua menjadi rsync -a --delete $DIR1/ $DIR2 (tanpa *) itu akan berhasil. Alasannya adalah shell memperluas * ke nama file di direktori pertama, yang hanya b dalam kasus Anda, sehingga file yang hilang a tidak akan dianggap sama sekali oleh rsync, karena perintah yang dijalankan sebenarnya adalah rsync -a --delete $DIR1/b $DIR2 .


Linux
  1. Menggunakan rsync untuk Menyinkronkan File

  2. Linux Hapus File dan Direktori

  3. cp -r tanpa file tersembunyi

  1. Linux setara dengan robocopy?

  2. folder gabungan linux:rsync?

  3. Tip dan trik rsync favorit

  1. Hapus file secara rekursif dengan aman:merobek-robek

  2. Linux – Hapus Direktori Besar yang Berisi Ribuan File Secara Efisien?

  3. Hapus semua /var/log?