我觉得它们很相似。我想知道如何使用它们。结构上有什么不同?
答案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
做不到如此花哨的事情。
要学习选项和语法(“结构”?)(非常相似)请阅读man
并info
练习!
答案2
cp
是一款简单的工具,自古以来就存在,用于简单地将本地文件系统上的一个位置复制到另一个位置。它只是盲目复制,可能会要求覆盖文件。
另一方面,rsync
它是一种同步两个目录/文件的复杂工具,不一定在同一个文件系统上(您可以rsync
通过ssh
,,ftp
...)并且它有很多功能可以节省您的带宽或时间(如果文件相同,则不必复制所有内容)。