2013-03-13 50 views
5

我想在我的rsync命令中使用一个简单的工作(多个)exclude选项。可以说,我会排除a filea directory简单的RSync EXCLUDE选项?

  • /var/www/html/test.txt
  • 在/ var/www/html等/图片/

我所做的是:

rsync -avz --exclude="/var/www/html/test.txt" --exclude="/var/www/html/images/" /var/www/html [email protected]:/var/www

rsync -avz --exclude=/var/www/html/test.txt --exclude=/var/www/html/images/ /var/www/html [email protected]:/var/www

rsync -avz --exclude /var/www/html/test.txt --exclude /var/www/html/images/ /var/www/html [email protected]:/var/www

..

但是但是,--exclude不工作!
一切都会熄灭!

  • 如何以这种简单的格式做到这一点?

注意:我也不想使用外部排除列表文件。只需要一个简单的命令。

回答

12

我经过多次学习和测试后,自己解决了这个问题。真正的问题是可以理解的(对我来说)--exclude选项的使用格式。

我不知道别人是怎么做的,但我刚刚发现:

  • “ - 排除”路径不能完整的绝对路径!

因为我使用的路径如下:--exclude /var/www/html/text.txt导致事情不起作用。所以我用像:

--exclude text.txt --exclude images/ 

..它工作!

+0

只是一个警告:这个命令将排除'text.txt'文件和'图像'目录任何地方,它发现它们在文件层次结构(即不只是在顶层的目录被备份),这可能不是你想要的。 – pgoetz 2015-04-10 15:25:33

+0

我希望它能像那样工作,但这对我不起作用 – 2015-11-02 22:32:05

5

我个人喜欢--exclude={text.txt,images/}格式。

  • 请记住,使用rsync,全部排除(或包括)与/开始的路径被锚定在根转移的这在你的榜样将是/var/www/html目录!!,因此,如果指定/text.txt它会只能是树中传输目录的根目录以外的文件。你可以找到更多的信息和例子here