【发布时间】:2014-12-03 20:31:02
【问题描述】:
我想用 rsync 合并一个包含较新版本 wordpress 的文件夹与包含旧版本 wordpress 和一些主题作品的文件夹。
我希望合并将在这两个版本中找到的任何文件替换为新版本,并将更高版本中不存在的文件保留在目标文件夹中。
那我会用 git 来判断有什么变化,然后往上推。
我该怎么做呢?
【问题讨论】:
我想用 rsync 合并一个包含较新版本 wordpress 的文件夹与包含旧版本 wordpress 和一些主题作品的文件夹。
我希望合并将在这两个版本中找到的任何文件替换为新版本,并将更高版本中不存在的文件保留在目标文件夹中。
那我会用 git 来判断有什么变化,然后往上推。
我该怎么做呢?
【问题讨论】:
看起来,rsync 带有 -a(归档,即通过目录递归,并保留权限和符号链接等,尽可能多地保留所有内容)和 -u(更新,即始终保留较新版本)标志会做的工作。 (可能是详细的 -v 标志)
例如
rsync -auv /path/to/source/dir/ /path/to/target/dir/
或者,如果它是远程的,您还可以使用 -e 标志指定您想要使用的远程 shell,例如用ssh
rsync -auv -e "ssh" /path/to/source/dir/ remoteusername@remoteserver:/target/path/on/remote/machine/
反之亦然
rsync -auv -e "ssh" remoteusername@remoteserver:/source/path/on/remote/machine/ /path/to/local/target/dir/
(也许您可能想先尝试使用两个测试目录来验证它是否有效,然后再执行可能会覆盖重要内容并因此造成严重损害的事情。)
【讨论】: