rsync 包括不使用目录

rsync include not working with directories

如果文件在源位置的根目录中,我使用 rsync include 成功,但如果它在目录中则不成功

这个有效:

 rsync -aP --omit-dir-times \
     -e 'ssh -p100  -i /home/me/.ssh/id_rsa.pub' \
     --include fixed.xml --include file2.txt \
     --exclude * \
     /home/me/Desktop/test/ me@192.168.1.10:here/

这不是:

 rsync -aP --omit-dir-times \
     -e 'ssh -p100  -i /home/me/.ssh/id_rsa.pub' \
     --include fixed.xml --include 50/200/file2.txt \
     --exclude * \
     /home/me/Desktop/test/ me@192.168.1.10:here/

有人以前见过这个问题吗?

这种情况实际上在 rsync 手册页中用示例进行了描述。

解决方案是将目录包含到您想要的文件中:

 --include 50 --include 50/200 --include 50/200/file2.txt

如果这种情况经常发生,那么你可以添加这个,这是一个较短的命令,但会强制 rsync 扫描很多你不关心的目录:

--include '*/' --prune-empty-dirs --include 50/200/file2.txt

需要修剪以防止它创建整个目录结构,减去文件,但应谨慎使用。