我有一个相对较大的数据目录。它偶尔会更新,但通常只有一小部分树会发生变化。我目前通过使用cp -Rl previous_version/ new_version/
来递归创建硬链接来更新它new_version/
,然后进入new_version
并手动更新已更改的文件。这非常节省空间,但很繁琐,我必须小心地用新的 inode 替换更新的文件。如果我不小心修改了文件,它将更改以前的版本。
我真正想要的是能够构建一个新目录updates/
,其中仅包含已更改文件的更新版本,然后有一个可以像这样运行的假设工具:
some-tool previous_version/ updates/ new_version/
要做some-tool
的就是new_version/
使用来自的硬链接进行构建previous_version/
,然后对于其中的每个文件,用来自的硬链接updates/
替换中的现有文件。new_version/
updates/
这将使我能够更轻松、更安全地完成我正在做的事情,并提供良好的更新目录,清楚地显示每个版本之间发生了什么变化。
是否存在这样的事情,或者是否有其他方法可以解决我的问题?
答案1
这个问题的解决方案是如此明显,我有点不好意思留下这个问题:
cp -Rl previous_version new_version
cp -Rlf updates/* new_version