如何让 rsync 只对文件起作用而不是目录

如何让 rsync 只对文件起作用而不是目录

我只想镜像特定文件(例如 *.jpg),但 rsync 在目标主机上创建了没有任何 *.jpg 文件的空目录。

我的语法是:

rsync -arv  
      --include '*/' 
      --include '*.flv' 
      --exclude '*' 
      host_source/ host_dest/

我尝试创建一个包含所有路径和文件模式匹配 *.jpg 的文件:

    find source/ -iname *.jpg > myfiles.txt  
/* and I use "sed" to filter the parent path to be OK */

因此,现在我运行:

rsyn -ar --files-from=myfiles.txt host_source/ host_dest/

这工作正常;在“host_dest”上没有创建空目录,但是现在如果“host_dest”上有一些应该在“host_source”上删除的文件,rsync 不会删除它们。

那么我该如何告诉 rsync “看”仅适用于文件模式并且不在 host_dest 上创建空目录?

在我发疯之前非常感谢你的回答:)

答案1

人rsync:

-m, --prune-empty-dirs      prune empty directory chains from file-list

答案2

尝试从命令行中删除递归选项

rsync -a --files-from=myfiles.txt 主机源/ 主机目标/

相关内容