rsync - удалять-исходные-файлы, но только те, которые соответствуют шаблону

Действительно ли это возможно с rsync?

Передайте все от src:path/to/dir кому: dest:/path/to/other/dir и удалите некоторые исходные файлы в src:path/to/dir то соответствие шаблон (или предел размера), но сохраняет все другие файлы. Я не мог найти способ ограничить --remove-source-files с regexp или пределом размера.

Update1 (разъяснение): я хотел бы все файлы в src:path/to/dir быть скопированным в dest:/path/to/other/dir. После того как это сделано, я хотел бы иметь некоторые файлы (те, которые соответствуют regexp или пределу размера) в src:path/to/dir удаленный, но не хочу удалять что-либо в dest:/path/to/other/dir.

Update2 (больше разъяснения): К сожалению, я не могу просто rsync все и затем вручную удалять файлы, соответствующие моему regexp от src:. Файлы, которые будут удалены, непрерывно создаются.

Так скажем, существуют файлы N типа, который я хотел бы удалить после передачи в src: когда rsync запускается. К этому времени rsync концы будет N+M такие файлы там. Если я теперь удалю их вручную, то я потеряю файлы M, которые были созданы, в то время как rsync работал.

Следовательно я хотел бы иметь решение, которое гарантирует, что единственные файлы удалили из src: те, которые, как известно, были успешно скопированы в dest:. Я мог выбрать список файлов от dest: после того, как rsync завершен, и сравните тот список файлов с тем, что я имею в src: и затем сделайте удаление вручную. Но я задавался вопросом, может ли rsync сделать это отдельно.

4
задан 13.02.2010, 19:12

1 ответ

Вы хотите удалить перед передачей или после? Таким образом, должен dest: имеют удаленные файлы?

Я подозреваю, что самый легкий путь состоит в том, чтобы сделать их как отдельные команды. Использовать find | xargs rm удалить желаемые файлы (возможно, добавляющий egrep к каналу, если regex сложен), и rsync сделать копию. Порядок выполнения будет определен ответом на мой вопрос в первом абзаце.

0
ответ дан 07.12.2019, 22:43

Теги

Похожие вопросы