5

我想在我的命令中有一个简单且有效的(多个)exclude选项。rsync可以说我将排除a filea directory

  • /var/www/html/test.txt
  • /var/www/html/images/

我所做的是:

rsync -avz --exclude="/var/www/html/test.txt" --exclude="/var/www/html/images/" /var/www/html root@xx.xx.xx.xx:/var/www

或者

rsync -avz --exclude=/var/www/html/test.txt --exclude=/var/www/html/images/ /var/www/html root@xx.xx.xx.xx:/var/www

或者

rsync -avz --exclude /var/www/html/test.txt --exclude /var/www/html/images/ /var/www/html root@xx.xx.xx.xx:/var/www

..

但是,这--exclude是行不通的!
一切都会过去!

  • 请问如何以这种简单的格式进行操作?

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

4

2 回答 2

12

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

我不知道其他人的情况如何,但我刚刚发现:

  • “--exclude”路径不能是完整的绝对路径!

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

--exclude text.txt --exclude images/

..它有效!

于 2013-03-14T07:57:19.143 回答
6

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

  • 请记住,使用 rsync,所有以 / 开头的排除(或包含)路径都锚定到传输的根目录,在您的示例中将是/var/www/html目录!!,因此如果您指定/text.txt它只是 @ 根目录的文件您的传输目录不在树的上方。您可以在此处找到更多信息和示例
于 2016-01-14T12:35:55.300 回答