我想要rsync
内容从/local/path
到server:/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]'
不适用于文件过滤?
发布于 2016-06-09 09:21:16
你是说--remove-sent-file
而不是remove-source-file
吗?
根据rsync手册页的说法:
--remove-sent-file
这告诉rsync从发送端删除新创建的文件和/或符号链接,或者在接收端更新其内容。目录和设备不会被删除,其属性仅被更改的文件/符号链接也不会被删除。
这意味着只从源中删除传输的文件(大小更改的文件)。要激活包含文件,首先需要排除除我的包含模式之外的所有其他文件。您使用的3个参数意味着“我排除了所有文件(--include='*/' --exclude='*'
),但是那些与我的模式(--include='*.[0-9]{4}'
)相匹配的文件”。
来自手册页:
--include=PATTERN
不排除文件匹配模式--exclude=PATTERN
排除文件匹配模式
https://stackoverflow.com/questions/37706615
复制相似问题