rsync --remove-source-files but only those that match a pattern
Posted
by
user28146
on Super User
See other posts from Super User
or by user28146
Published on 2010-02-13T15:23:24Z
Indexed on
2012/06/28
15:19 UTC
Read the original article
Hit count: 160
command-line
|rsync
Is this possible with rsync?
Transfer everything from src:path/to/dir
to dest:/path/to/other/dir
and delete some of the source files in src:path/to/dir
that match a pattern (or size limit) but keep all other files. I couldn't find a way to limit --remove-source-files
with a regexp or size limit.
Update1 (clarification): I'd like all files in src:path/to/dir
to be copied to dest:/path/to/other/dir
. Once this is done, I'd like to have some files (those that match a regexp or size limit) in src:path/to/dir
deleted but don't want to have anything deleted in dest:/path/to/other/dir
.
Update2 (more clarification): Unfortunately, I can't simply rsync everything and then manually delete the files matching my regexp from src:. The files to be deleted are continuously created.
So let's say there are N files of the type I'd like to delete after the transfer in src: when rsync starts. By the time rsync finishes there will be N+M such files there. If I now delete them manually, I'll lose the M files that were created while rsync was running.
Hence I'd like to have a solution that guarantees that the only files deleted from src: are those known to be successfully copied over to dest:. I could fetch a file list from dest: after the rsync is complete, and compare that list of files with what I have in src:, and then do the removal manually. But I was wondering if rsync can do this by itself.
© Super User or respective owner