-a 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于 -rlptgoD。 -v 详细模式输出。 --delete 删除 目标文件夹(dst) 中 源文件夹(src) 已经没有的文件。 --exclude='' 指定排除不需要传输的文件模式(注意!这里的根目录是 src 目录,里面的文件是相对路径)
预备: src 下有 a b c 3个文件, dst 为空文件夹
代码语言:javascript复制mkdir src
mkdir dst
cd src
touch a b c
1.-av 参数
代码语言:javascript复制rsync -av src/ dst/
同步完成后 dst 下有 a b c 3个文件
2.--delete 参数
代码语言:javascript复制rm src/b
rsync -av --delete src/ dst/
同步完成后 dst 下有 a c 2个文件,b文件删除
3.--exclude 参数
代码语言:javascript复制touch src/d src/e
rsync -av --delete --exclude='e' src/ dst/
同步完成后 dst 下有 a c d 3个文件,e文件被排除不进行同步
4.同步到远程(发布代码)
代码语言:javascript复制rsync -av --delete src/ vagrant@192.168.33.10:/home/vagrant/dst
注意以下区别!
rsync -av src/ dst/
同步src文件夹下的文件,结果为 dst/a、dst/b、dst/c (建议这种用法 --delete 和 --exclude="" 参数能更友好的配合)
rsync -av src dst/
同步src文件夹本身,结果为 dst/src/a、dst/src/b、dst/src/c