详细用法见:https://www.cnblogs.com/oboth-zl/articles/10334754.htmlhtml
主要用于数据同步、备份和镜像,除了本地使用以外,也能够经过rsync或者ssh协议进行网络数据同步。bash
指定须要同步的文件。网络
有以下目录结构:ssh
若咱们只想导入1和2两个目录及其里面的内容,咱们能够执行spa
rsync -av rsync/1 rsync/2 rsync-0
能够看到结果符合咱们预期。code
如用--files-from呢?htm
rsync -av --files-from=test.txt rsync rsync-1
test.txt内容为blog
1get
2同步
1.txt
执行后的目录结构
结果和咱们预期的不同,只有指定的文件和目录,而没有目录下的其余内容。
因此,--files-from选项只会同步指定的文件和目录,而不会同步目录下的其余内容。
两个选项含义相同,互相可做替换。用来指定包含或者不包含的文件。
基本格式:
+/include file
-/exclude file
/ 在名字前表根目录
/ 在后表目
默认包含全部文件和目录,因此 + 单独使用无心义,常和 - 搭配使用。
好比
cat > rule.txt << EOF + Desktop/ + Desktop/* + .bashrc + .cshrc + /* - * EOF
rsync -av --exclude-from=rule.txt root rsync_dir
此规则表示仅同步Desktop及其下级目录和文件,以及.bashrc、.cshrc。并不会同步Desktop/*/再下一级目录,这里须要注意。而且若注释掉 /* 则不会同步任何数据。
而当规则换成这样
cat > rule.txt << EOF
+ /root/Desktop/
+ /root/Desktop/*
+ /root/.bashrc
+ /root/.cshrc
+ /*
- *
EOF
结果和上面同样。