我有大量具有类似子文件夹结构的目录。每个目录都有一个子目录“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-folders 还在里面。有什么解决方法吗?
我会要求你在你的命令前面加上
echo
你正在运行的东西。echo rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
根据您的 shell、您的 shell 设置和当前目录的内容,未引用的
*_tmp
可能会扩展为特定文件(可能与您要排除的大多数文件不匹配)。echo
应该显示实际发生的情况。您应该用引号保护星号以防止外壳扩展。
rsync -avz --exclude '*/s/*' --exclude '*_tmp' SOURCE/ DEST/