Bash - rsync exclude保持复制目录

时间:2016-01-31 17:22:14

标签: bash rsync

我已经尝试了十几种不同的语法方法而且无法获得它。

我试图排除一个名为的目录      / Users / dirk / Documents / Virtual \ Machines.localized /

这是我的命令:

rsync -vzapogDt --delete --exclude-from /Users/dirk/Documents/* ~dirk/ /Volumes/share-1/backup/mbp.20160131

运行时,它会继续复制Documents下的所有内容。第一次在这里发帖,如果我没有遵守协议,那么道歉。相信我,我研究了一段时间无济于事。

干杯

3 个答案:

答案 0 :(得分:1)

试试这个:

rsync -vzapogDt --delete --exclude=/Users/dirk/Documents/ ~dirk/ /Volumes/share-1/backup/mbp.20160131

来自man rsync

  

--exclude-from=FILE:从文件中读取排除模式

     

--exclude=PATTERN:排除与PATTERN匹配的文件

答案 1 :(得分:1)

rsync无法处理绝对或相对路径....尝试

rsync -vzapogDt --delete --exclude Documents ~dirk/ /Volumes/share-1/backup/mbp.20160131

答案 2 :(得分:0)

@Cyrus有正确的想法:使用--exclude=<pattern>选项而不是--exclude-file。尝试:

rsync -vzapogDt --delete --exclude '/Users/dirk/Documents/Virtual Machines.localized/*' ~dirk/ /Volumes/share-1/backup/mbp.20160131

该模式使用单引号来防止通配符扩展。 (您希望将星号赋予rsync,而不是在shell中展开它。)这也会处理目录名称中没有反斜杠转义的空格。