用 rsync 替代 scp 拷贝东西

rsync支持本机目录之间,也支持网络计算机之间的可续传、可压缩的拷贝。

使用方法

格式:
rsync SOURCE/ DESTINATION/rsync OPTION SOURCE DESTINATION
网络拷贝时,rsync基本和scp的用法差不多,例:rsync -vhlPr -e ssh user@host:/home/user/hzh-disk/HanLP .,如果不指定协议,rsync可能会采用rsh协议,这个协议比ssh慢一些。
若目录之间拷贝时不带 -r option,将只拷贝该目录下的文件,不会递归拷贝子目录。注意如果目录里有隐藏文件,rsync会将其一并拷贝到目标目录,因此rsync看起来更像是一个备份命令。

使用 rsync -vhlP SOURCE DESTINATION就应该可以满足大部分需求了。若拷贝目录则带上-r,根据情况带上-a,小文件太多时可带上-z

注意事项

  1. 关于目录拷贝,即若source是目录

    • rsync -vhlPr SOURCE DESTINATION/ 拷贝目录本身
      将目录SOURCE(包括SOURCE本身)全部打包拷贝到DESTINATION,若DESTINATION中不存在SOURCE目录,则会创建SOURCE目录。如果不带-l选项,则不会拷贝软链接文件(子目录里的链接也不会),但会拷贝隐藏文件。如果不带-r选项,则什么都不会做。
    • rsync -vhlPr SOURCE/ DESTINATION/ 拷贝目录内容
      将目录SOURCE(不包括SOURCE本身,只会拷贝SOURCE目录里的东西)里的全部文件,包括软链接文件和隐藏文件都拷贝到DESTINATION目录下面。如果不带-l选项,则不会拷贝链接文件,但依然会拷贝隐藏文件。如果不带-r选项,则什么都不会做。
    • rsync -vhlPr SOURCE/* DESTINATION/ 很少用
      尽量不要使用这个命令。它与rsync -vhlPr SOURCE/ DESTINATION/差不多,但是还是有点差别。这个命令永远不会拷贝隐藏文件,也没有选项让它拷贝隐藏文件。若不带-r则只会拷贝文件,不会拷贝子目录。若不带-l则会忽略软链接。

    DESTINATIONDESTINATION/没有区别。

option常用选项:

  1. -v or --verbose
    传输的时候会显示一个概览。
  2. -h or --human-readable
    显示的内容以易读方式显示。
  3. -l
    同时拷贝软链接。不带这个选项是不会拷贝软链接的。所以建议总是带这个选项。
  4. -P
    相当于 --partial --progress。即断点续传并显示进度。
  5. -r or --recursive
    递归拷贝目录及其子目录。和-a的差别是-a等效于-rlptgoD (no -H,-A,-X)。
  6. -e
    指定传输所用的传输协议,支持 ssh or rsh。如 rsync -vhlPraze ssh SOURCE/ DESTINATION/
  7. -a or --archive
    归档模式,等效于-rlptgoD (no -H,-A,-X),会拷贝软链接,且拷贝的时候会保留几乎所有的属性,比如所属用户及组,时间戳等。
  8. -z or --compress
    压缩后再传。
  9. --partial
    断点续传。如果不带这个选项,中断传输时,只传输了一部分的文件会被删除。
  10. --progress
    传输时显示进度。
  11. --update
    • 相当于增量备份功能。
    • 如果文件不存在,则会传输,即删掉目标文件。
    • 如果文件时间戳较新,则也会传输。
    • 不管文件时间戳,文件内容不一样,也会传输。(注:这一点我自己还没验证过)
  12. --remove-source-files
    删掉传输成功的文件。
  13. --delete
    从目标目录中删掉源目录中不存在的文件。
posted @ 2023-02-01 17:12  微信公众号--共鸣圈  阅读(196)  评论(0编辑  收藏  举报