Jak wyczyścić po nieudanym rsync?

12

Zabiłem lokalny proces „rsync -ah”.
Pozostawił niepotrzebne pliki, takie jak „.abc.vmdk.zxivMN” w katalogu docelowym.
Niepotrzebne pliki nie są usuwane przy kolejnych uruchomieniach „rsync -ah”.

Szczegóły:
Uruchomiłem diff w obu folderach, które synchronizowałem i zgłosił: „Tylko w / mnt / archive1 / dokumenty / ogólne: .abc.vmdk.zxivMN”

Jaki jest najlepszy sposób na wyczyszczenie tymczasowych plików rsync?

użytkownik27465
źródło

Odpowiedzi:

12

Powiedz, rsyncaby usunąć pliki spoza źródła za pomocą --delete-duringlub --delete-after. Zachowaj ostrożność i użyj tej opcji tylko wtedy, gdy nie masz prawidłowych plików w celu, których nie ma w źródle.

Zobaczyć man rsync.

Oczywiście zawsze możesz ręcznie usunąć pliki wykryte za pomocą diff...

Sven
źródło
Nie jest to dobre, gdy wykonujesz kopię, a nie ruch.
Sridhar Sarnobat
6

Robię to za pomocą

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

do testu i

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

dla jasności

Andrés R. Gard
źródło
-1

Znalazłem następujące polecenie, które działało dla mnie podczas próby usunięcia plików tymczasowych pozostawionych przez rsync po nieudanym transferze.

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

W ten sposób znajduje wszystkie „ukryte” pliki (pliki rozpoczynające się od znaku „.”) I przekazuje je do polecenia „rm” w celu ich usunięcia.

Oczywistym znanym problemem dotyczącym powyższego kodu jest to, że jeśli zawartość zawiera ukryte pliki, to polecenie również je usunie.

tablica
źródło
-2

Szukam lepszego rozwiązania, ale jedyne, co mogę wymyślić, to przenieść wszystkie emptypliki zaczynające się od .i zawierające dwie kolejne kropki do folderu kosza (używanie rmjest trochę ryzykowne):

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

W żadnym wypadku nie był niezawodny.

Sridhar Sarnobat
źródło
Głosowanie bez wyjaśnienia
Sridhar Sarnobat