rsync排除问题

rsync排除问题

我有大量具有类似子文件夹结构的目录。每个目录都有一个子目录“s”。有些目录的名称中有“_tmp”前缀。

我想要的是将所有主目录复制到新服务器,但将 s-subdirs 和 _tmp -dirst 保留在传输之外。

在 OSX(rsync v.2.6.9)上,此命令运行良好:

rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/

但在 Ubuntu(rsync v. 3.0.7)上,相同的命令失败,_tmps 已退出,但 s 文件夹仍在。有任何解决方法吗?

答案1

我会要求您在命令前面添加以echo查看您正在运行的内容。

echo rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/

根据您的 shell、shell 设置和当前目录的内容,未加引号的内容*_tmp可能会扩展为特定文件(该文件可能与您要排除的大多数文件不匹配)。应该echo显示实际发生的情况。

您应该用引号保护星号以防止 shell 扩展。

rsync -avz --exclude '*/s/*' --exclude '*_tmp' SOURCE/ DEST/

相关内容