rsync 不复制任何文件

rsync 不复制任何文件

我正在运行类似以下内容的内容:rsync -av -e "ssh" --include="dir1/***" --include="file1.txt" --exclude="*" superuser@remote-server:/var/www/ /var/,我收到的只是以下消息:

receiving incremental file list

sent 276 bytes  received 10 bytes  21.19 bytes/sec
total size is 0  speedup is 0.00

并且没有文件正在传输。

答案1

您包括 dir1 的子目录,但 dir1 本身被排除。所以没有看到它的孩子。

rsync手册页:

当使用尾随“*”规则时,路径排除的概念尤其重要。例如,这是行不通的:

+ /some/path/this-file-will-not-be-found
+ /file-is-included
- * 

这会失败,因为父目录“some”被“*”规则排除,因此 rsync 永远不会访问“some”或“some/path”目录中的任何文件。一种解决方案是要求使用单个规则包含层次结构中的所有目录:“+ */”(将其放在“- *”规则之前的某个位置),并且可能使用该 --prune-empty-dirs选项。另一个解决方案是为所有需要访问的父目录添加特定的包含规则。例如,这组规则就可以正常工作:

+ /some/
+ /some/path/
+ /some/path/this-file-is-found
+ /file-also-included
- *

相关内容