7

我在 Linux 上有一系列目录,每个目录都包含大量文件和数据。这些目录中的数据是自动生成的,但多个用户将需要对该数据执行更多分析并生成更多文件、更改结构等。

由于这些数据目录非常大,我不希望几个人复制原始数据,所以我想复制目录并从新目录链接到原始数据。但是,我希望将任何更改仅保留在新目录中,并将原始目录保留为只读。我不希望只链接我定义的特定文件,因为这些目录中的数据非常多样。

所以我想知道是否有一种方法可以通过链接到原始目录来创建目录的副本,但仅将任何更改的文件保留在新目录中。

4

2 回答 2

23

事实证明这就是我想要的:

cp -al <origdir> <newdir>

它将复制整个目录并创建指向原始文件的硬链接。如果原始文件被删除,复制的文件仍然存在,反之亦然。这将完美地工作,但我发现 newdir 一定不存在。只要原始文件是只读的,您就可以创建原始目录的相同安全副本。

于 2012-07-18T20:31:24.480 回答
2

但是,由于您正在寻找一种人们可以写回更改的方式,UnionFS可能就是您正在寻找的。它提供了将只读和读写位置合并为一个的方法。

Unionfs 允许任意混合只读和读写分支,以及在扇出的任何位置插入和删除分支。


最初我打算推荐这个(我经常使用它):

假设权限不是问题(例如只需要阅读),我建议将它们绑定安装到位。

mount -B <original> <new-location>
# or
mount --bind <original> <new-location>

<new-location>必须作为文件夹存在。

于 2012-07-12T16:11:45.807 回答