前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >强烈建议使用 rsync 替换 cp/scp 进行文件拷贝

强烈建议使用 rsync 替换 cp/scp 进行文件拷贝

作者头像
山月
发布2022-11-02 16:31:39
1.4K0
发布2022-11-02 16:31:39
举报

快速高效,支持断点续传、按需复制的文件拷贝工具,并「支持远程服务器拷贝」

「强烈建议在本地也使用 rsync 替换 cp 进行文件拷贝。」

远程复制

拷贝数据,我习惯使用 -lahzv 结合命令。

如果需要拷贝至远程服务器,则以远程服务器名开头即可。

代码语言:javascript
复制
# 将本地的 react 拷贝到 shanyue 服务器的 ~/Documents 目录
#
# -l:--links,拷贝符号链接
# -a:--archive,归档模式
# -h:--human-readable,可读化格式进行输出
# -z:--compress,压缩传输
# -v:--verbose,详细输出
# shanyue: 我的远程服务器
$ rsync -lahzv ~/Documents/react shanyue:/home/shanyue/Documents

归档模式

rsync 归档模式最大的好处是可以拷贝原信息,如 ctime/mtime/mode 等等,这对于静态资源服务器相当有用!!!

代码语言:javascript
复制
# 查看其 yarn.lock 信息
$ 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

拷贝目录

拷贝目录,则需要看原目录是否以 / 结尾。

  • 不以 / 结尾,代表将该目录连同目录名一起进行拷贝
  • / 结尾,代表将该目录下所有内容进行拷贝
代码语言:javascript
复制
# 以下以拷贝 react 目录为例
# 
# ~/Documents/abc/react
$ rsync -lahz ~/Documents/react ~/Documents/abc
$ rsync -lahz ~/Documents/react ~/Documents/abc/

# ~/Documents/abc
$ rsync -lahz ~/Documents/react/ ~/Documents/abc
$ rsync -lahz ~/Documents/react/ ~/Documents/abc/

作业

  1. 熟悉 rsync 在本地及远程服务器间拷贝文件
  2. 在 Node.js 或其它语言中如何实现 cp。参考 fsp.cp1。(cp 实际上是通过库函数 open/write 模拟实现)

参考资料

[1]

fsp.cp:https://nodejs.org/api/fs.html#fspromisescpsrc-dest-options

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 远程复制
  • 归档模式
  • 拷贝目录
  • 作业
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档