有没有办法创build一个目录的复制写入副本?

我正在考虑创build一个目录副本,调整一些文件,然后对结果进行一些处理的情况。 这一定会经常做,也许每天几十次。 (确切的用例是testing补丁提交;重复代码,补丁,构build/testing/报告等)。

我正在寻找的可以通过创build一个新的目录结构,并用原来的硬链接填充它。 然而这只有在你使用的所有工具都删除并重新创build文件而不是编辑它们的情况下才有效。

有没有办法让文件系统为文件做写入时拷贝 ?


注意:我知道许多FS在块级使用COW(所有更新都是通过写入新块来完成的),但这不是我想要的。

如果您有select使用文件服务器的平台,那么最好使用最近的OpenSolaris版本,并使用ZFS的重复数据删除function。 这种方式的文件副本将不占用额外的空间,甚至文件之间的通用段也不会被复制。

您可以在Jeff Bonwick博客的这篇文章中阅读关于ZFS重复数据删除的所有信息。

可能是SVN或其他版本工具(git,cvs)?