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

Thá*_*hưn 15 command-line rsync cp

他们看起来和我很像。我想知道如何使用它们。结构上有什么区别?

Zan*_*nna 14

简短(可以写一本关于该主题的小书),这样思考可能很有用:

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

使用它们的各种选项,您可以将它们中的任何一个用于许多任务,例如cp -u可以只替换较新的文件,就像rsync过去一样。

但是在某些任务中,一个比另一个更有优势

cp当您想要制作本地重复文件或目录时,您不妨使用。例如,你想编辑一个重要的文件,所以你先做一个备份:

cp .bashrc bashrc-bak
Run Code Online (Sandbox Code Playgroud)

rsync做到这一点需要再敲三下按键,那何必呢?如果要复制目录

cp -r ~/Desktop/cakes ~/Recipes/cakes
Run Code Online (Sandbox Code Playgroud)

很好地为您服务。为什么要打字rsync -a?你可能会,因为它的-v详细选项提供了更有趣和有用的输出。

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

您还可以使用rsync将文件复制或同步到远程机器,或者 make 作为守护程序运行。谦虚cp不能做这么花哨的事情。

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


Jak*_*uje 0

cp是一个简单的工具,从那时起就存在,它用于简单地从本地文件系统上的一个地方复制到另一个地方。它只是盲目复制,并可能要求覆盖文件。

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