Як очистити після невдалої rsync?


12

Я вбив місцевий процес "rsync -ah".
Він залишив непотрібні файли типу ".abc.vmdk.zxivMN" у цільовому каталозі.
Непотрібні файли не видаляються при послідовному запуску "rsync -ah".

Докладніше:
Я працював у обох папках, які я синхронізував, і він повідомляв: "Тільки в / mnt / archive1 / document / general: .abc.vmdk.zxivMN"

Який найкращий спосіб очистити тимчасові файли rsync?

Відповіді:


12

Скажіть, rsyncщоб видалити файли не в джерелі, за допомогою --delete-duringабо --delete-after. Будьте уважні і використовуйте цю опцію, лише якщо у вас немає законних файлів у цілі, яких немає у джерелі.

Див man rsync.

Звичайно, ви завжди можете вручну видалити файли, які ви виявили за допомогою diff...


Це не добре, коли ви робите копію, а не рухаєтесь.
Шрідхар Сарнобат

6

Я роблю це за допомогою

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

для тестування та

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

для ясного


-1

Я виявив, що наступна команда працювала для мене при спробі видалити тимчасові файли, залишені rsync після невдалої передачі.

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

Для цього потрібно знайти всі "приховані" файли (файли, що починаються з символу ".") І передає їх команді "rm" для їх видалення.

Очевидно відома проблема щодо коду, що вказаний вище, якщо ваш вміст містить приховані файли, тоді ця команда також видалить і ці.


-2

Я шукаю кращого рішення, але єдине, про що я можу придумати, - це перемістити всі emptyфайли, починаючи з а ., і маючи в них ще дві крапки, до папки сміття (використання rmтрохи ризиковано):

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

Ні в якому разі не дурний.


Порушено без жодних пояснень
Шрідхар Сарнобат
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.