使用 rsync 更新并从源文件夹中删除

Update using rsync and remove from the source folder

我想 rsync/local/pathserver:/remote/path 的内容。

我试过了

rsync -avmhP --include='*.[0-9][0-9][0-9][0-9]' --include='*/' --exclude='*' --size-only --remove-source-files /local/path server:/remote/path

但是,远程路径中存在的一些文件仍保留在本地路径中。

另一个问题是,为什么我们需要--include='*/' --exclude='*'?为什么单独 --include='*.[0-9][0-9][0-9][0-9]' 对文件过滤不起作用?

你是说 --remove-sent-file 而不是 remove-source-file 吗?

根据the rsync man page

--remove-sent-file

This tells rsync to remove from the sending side the files and/or symlinks that are newly created or whose content is updated on the receiving side. Directories and devices are not removed, nor are files/symlinks whose attributes are merely changed.

这意味着只有传输的文件(大小改变的文件)从源中删除。要激活包含文件,您首先需要排除所有其他但我的包含模式。您使用的 3 个参数表示“我排除了所有文件 (--include='*/' --exclude='*') 但匹配我的模式的文件 (--include='*.[0-9]{4}')

来自手册页:

--include=PATTERN

don’t exclude files matching PATTERN

--exclude=PATTERN

exclude files matching PATTERN