`cp` 和 `rsync` 有什么区别?

`cp` 和 `rsync` 有什么区别?

我觉得它们很相似。我想知道如何使用它们。结构上有什么不同?

答案1

简而言之(可以就该主题写一本小书),也许这样想会很有用:

  • cp用于复制内容,默认情况下仅确保文件具有唯一的完整路径名
  • rsync用于同步内容,并使用文件的大小和时间戳来决定是否应替换它们。它比cp

使用它们的各种选项,您可以将它们用于许多任务,例如可以像以前那样cp -u只替换较新的文件。rsync

但有些任务中,一个比另一个有优势

cp当你想在本地创建文件或目录的副本时,也可以使用这个命令。例如,你想编辑一个重要的文件,所以你先进行备份:

cp .bashrc bashrc-bak

这样做rsync需要多敲三次键,所以何必呢?如果你想复制一个目录

cp -r ~/Desktop/cakes ~/Recipes/cakes

对你来说很好。为什么要费心输入rsync -a?也许吧,因为它的-v详细选项提供了更有趣和有用的输出。

但是,假设您正在更新闪存驱动器上某个目录的备份。该目录已存在于闪存驱动器上,您只想同步文件,这样它就有了最新版本的内容。rsync比这个快得多cp,因为它会检查文件大小和时间戳以查看哪些需要更新,并且您可以添加更多改进。您甚至可以让它执行校验和而不是默认的“快速检查”,尽管这会花费更长的时间。

您还可以使用rsync将文件复制或同步到远程计算机,或者将 make 作为守护进程。卑微的人cp做不到如此花哨的事情。

要学习选项和语法(“结构”?)(非常相似)请阅读maninfo练习!

答案2

cp是一款简单的工具,自古以来就存在,用于简单地将本地文件系统上的一个位置复制到另一个位置。它只是盲目复制,可能会要求覆盖文件。

另一方面,rsync它是一种同步两个目录/文件的复杂工具,不一定在同一个文件系统上(您可以rsync通过ssh,,ftp...)并且它有很多功能可以节省您的带宽或时间(如果文件相同,则不必复制所有内容)。

相关内容