这个问题可能不精确,因此我将尝试更详细地解释它。
由于多种原因,我在Linux文件系统上有很多相同文件的副本。其中许多很大。
说我有/path/to/some.file
该文件/other/path/file.name
和的副本/yet/another/path/third.copy
。我想知道是否有一个文件系统可以从字面上使其中两个文件充当对原始文件的引用。自然,如果用户修改了其中之一,则只有这样,它们才成为独立文件。
PS。我知道这可以(部分)通过使用链接来完成。但是我希望我在上面试图解释的功能可以由文件系统透明地处理。
由于似乎还没有一个完美的答案,为什么不编写一个用硬链接(或者,如果对某些文件安全的话,用符号链接)代替硬链接的脚本(也许从cron运行)?无论如何,如果您不知道所有重复项在哪里,请查看fdupes code.google.com/p/fdupes。
—
2012年
我不能这样做,因为当某些用户更改重复项之一中的数据时,他们应该成为独立文件,因为更改后内容有所不同...如果我进行符号链接,则修改实际上将更改原始文件。将原始文件视为功能性编程语言中的值-修改该文件时,实际上会得到一个新对象并对其进行引用。
—
DejanLekic 2012年
好。只是一些想法:您是否可以通过某种方式在用户和这些文件之间进行访问?如果可以,则可以从链接(符号或硬链接)开始,然后在他们向文件中写入任何内容时断开链接。您还可以使用diff之类的东西来存储差异,以节省大量空间,例如在版本控制系统中。如果将文件放在其中之一中,则可以为您管理差异。我没有太多使用vcs系统,所以我不知道详细信息。
—
2012年