Skip to main content

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