Başarısız rsync sonra temizleme nasıl?


12

Yerel bir "rsync -ah" sürecini öldürdüm.
Hedef dizinde ".abc.vmdk.zxivMN" gibi önemsiz dosyaları bıraktı.
Önemsiz dosyalar art arda "rsync -ah" çalışmalarında silinmez.

Ayrıntılar:
Senkronize ettiğim her iki klasöre göre farklı olarak çalıştım ve şöyle bildirildi: "Yalnızca / mnt / archive1 / belgeler / genel: .abc.vmdk.zxivMN"

Geçici rsync dosyalarını temizlemenin en iyi yolu nedir?

Yanıtlar:


12

rsyncKaynakta olmayan dosyaları --delete-duringveya ile silmeyi söyleyin --delete-after. Dikkatli olun ve bu seçeneği yalnızca hedefte kaynakta bulunmayan meşru dosyalarınız yoksa kullanın.

Bkz man rsync.

Elbette, tespit ettiğiniz dosyaları her zaman manuel olarak silebilirsiniz diff...


Taşımak yerine bir kopya yaparken bu iyi değildir.
Sridhar Sarnobat

6

Kullanarak yaparım

find -type f -iname ".*.*.??????" -ls

test için ve

find -type f -iname ".*.*.??????" -delete

açıkça


-1

Başarısız bir aktarımdan sonra rsync tarafından geride bırakılan geçici dosyaları silmeye çalışırken aşağıdaki komutun benim için çalıştığını buldum.

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

Bu, tüm "gizli" dosyaları ("." Karakteriyle başlayan dosyalar) bulur ve silmek için "rm" komutuna iletir.

Bir bariz olarak bilinen sorun sizin içerikleri daha sonra bu komut sıra bu silecektir gizli dosyalar içeriyorsa yukarıdaki kodu ile ilgili olduğunu.


-2

Daha iyi bir çözüm arıyorum ama düşünebildiğim tek bir tüm emptydosyaları .bir çöp klasörüne (kullanarak rmbiraz riskli) başlayarak ve içinde iki nokta daha taşımaktır :

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

Hiçbir şekilde kusursuz.


Hiçbir açıklama ile yok
Sridhar Sarnobat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.