为什么不总是使用rsync?


17

我想问问是否有理由不使用rsync所有东西并放弃cp
我不知道,rsync现在我不知道为什么cp需要这样做。


9
rsync并非到处都有,cp是。
马太福音

3
哪个安装?Linux的?哪一个?Unix?同上。BSD?您永远不知道默认情况是什么。
terdon

5
Linux确实没有“默认安装”。每个发行版都有其核心软件包集以及其中的许多变体。同样,当您需要在许多系统上工作时,使用随处可用的工具会使事情变得更简单。
马太福音

4
@Mat:在Linux发行版中,通过基本GNU用户区符合POSIX的要求(并定义其功能),cp但不是rsyncpubs.opengroup.org/onlinepubs/007904875
goldilocks

1
我敢肯定,Debian GNU / Linux默认会安装rsync。但是,它在安装和救援环境中不可用。(我今天早些时候用它来将根分区的内容从一个磁盘转移到另一个磁盘。使用7.1.0 amd64安装DVD。)
CVn 2013年

Answers:


24

严格来说是的,您可以随时使用rsync。来自man rsync(强调我的):

Rsync是一种快速且用途广泛的文件复制工具。它可以通过任何远程Shell在本地复制到另一个主机,或从另一个远程复制到远程rsync守护程序。它提供了大量选项,可控制其行为的各个方面,并允许非常灵活地指定要
复制的文件集。它以增量传输算法而闻名,它仅通过发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量。 Rsync被广泛用于备份和镜像,并作为日常使用的改进复制命令。

现在,有时只是为了用坦克杀死苍蝇而没必要输入这几个额外的字符。另外,rsync默认情况下通常不安装,因此cp非常高兴。


您的意思是不是作为默认安装的一部分可用,而是单独下载?
吉姆(Jim)

1
@Jim是的,有时您需要rsync根据所使用的系统进行安装。如果您没有root访问权限,则可能会很难。cp是POSIX,并且将始终存在。
terdon

9
cpGNU coreutils的一部分,因此始终将它安装在每个Linux系统上,而rsync实际上不是。
Martin von Wittich 2013年

1
sometimes it is just not worth typing those few extra characters-我pcp为此使用了别名(“进度副本”);)
Izkata

19

Rsync可能比cp某些情况下要慢。例如,当目标存在并且rsync最终对每个块进行一些昂贵的比较时,找不到相等的块,并且无论如何都会复制完整的源文件。

同样,当目标文件不存在时,rsync不会比cp提供任何优势。


1
在下面,rsync的复制方法要慢得多。参见unix.stackexchange.com/questions/374071/…。cp的痕迹显示(在撰写本文时),一个简单的32KB读取/ 32KB写操作序列。同时,Rsync将对套接字的读取/ 4092字节+ 4字节写入/对套接字的读取/ 250KB写入文件。我正在以130MB / s的吞吐量执行36T混合大小文件的rsync。我可以使用cp -a将其增加三倍。正如您所说,当要在已经相似的目录上“使'that'看起来像'this'”时,rsync胜出。
Mike S


4

由于cprsync中缺少此标志,因此:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)

否,尽管-nrsync上有(试运行)功能,可以替代该功能。
Niloct
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.