rsync
快速高效,支持断点续传、按需复制的文件拷贝工具,并支持远程服务器拷贝。
强烈建议在本地也使用 rsync 替换 cp 进行文件拷贝。
用法
# -l:--links,拷贝符号链接
# -a:--archive,归档模式
# -h:--human-readable,可读化格式进行输出
# -z:--compress,压缩传输
# -v:--verbose,详细输出
# OctoberRain: 我的远程服务器
$ rsync -lahzv ~/Documents/react/ OctoberRain:/root/react
注意
拷贝目录,则需要看原目录是否以 /
结尾。
- 不以
/
结尾,代表将该目录连同目录名一起进行拷贝 - 以
/
结尾,代表将该目录下所有内容进行拷贝
# 把 til 目录,拷贝到远程服务器 test 目录下
$ rsync -lahzv til OctoberRain:/root/test
# 把 til 目录里的内容,拷贝到远程服务器 test 目录下
$ rsync -lahzv til/ OctoberRain:/root/test
归档模式
-a
归档模式,最大的好处是可以拷贝元属性(参考stat),如 ctime/mtime/mode
等等,这对于静态资源服务器相当有用!!!
# 查看其 yarn.lock 信息 | grep 表示选取 包含 yarn 的文件
$ ls -lah | grep yarn
-rwxrwxrwx 1 root root 733K Jun 10 15:47 yarn.lock
# yarn2.lock 使用 rsync 拷贝
$ rsync -lahz yarn.lock yarn2.lock
# yarn3.lock 使用 cp 拷贝
$ cp yarn.lock yarn3.lock
# 观察可知
# rsync 修改时间/mode 与源文件保持一致
# cp 修改时间为当前最新时间,mode 也不一致
$ ls -lah | grep yarn
-rwxrwxrwx 1 root root 733K Jun 10 15:47 yarn.lock
-rwxrwxrwx 1 root root 733K Jun 10 15:47 yarn2.lock
-rwxr-xr-x 1 root root 733K Jun 26 23:19 yarn3.lock