常用Rsync实例
rsync是一个非常强大的传输和同步文件的命令行工具, 支持压缩传输递归复制
常用选项 | 功能 |
---|---|
-u, --update | 不传输已存在的非更新(newer)的文件 |
--progress | 显示传输进度 |
-z, --compress | 启用压缩 |
--exclude | 不传送这个选项后的文件或文件夹 |
--delete | 通常rsync只做增量传输,这个选项让你删除目标文件夹的多余文件 |
-r, --recursive | 包含子文件夹的文件 |
将
folder1
下的所有文件复制到folder2
, 不包括文件夹$ rsync folder1/* folder2/
将
folder1
下的所有文件复制到folder2
, 包括文件夹$ rsync -r folder1/ folder2/
注意如果去掉
folder1
后的/
,将会把folder1
整个复制到folder2
下, 也就是folder2/folder1
同2,复制到远程位置,
$ rsync -r folder1/ [email protected]:~/folder2
默认为ssh的22端口,如果是其他端口需要
$ rsync -r -e "ssh -p 3322" folder1/ [email protected]:~/folder2
但是这样的写法很复杂, 如果在
~/.ssh/config
里面加入Host remote User remoteuser Hostname xxx.xxx.xxx.xxx Port 3322
就可以写为
$ rsync -r folder1/ remote:~/folder2
同3,将远程位置复制到本地,同时删除本地多余的文件
$ rsync -r --delete remote:~/folder1 folder2/
复制本地
folder1
到remote
上的folder2
,无视.node_modules
文件夹, 显示传输进度, 并启用压缩$ rsync -rz --progress --exclude node_modules folder1/ remote:~/folder2