如果您需要知道,我使用的是具有内核版本的 GNU+Linux 发行版5.5.5。
所以,假设我有一个名为 根据。进一步假设该目录只包含一个空文件,名为A。
理想情况下,我想叉该目录将其内容保留到名为的新目录中叉。然后,我会在文件中写入一些内容A此外,创建一个新的空文件,名为乙(代替叉)。
我想要实现的预期行为是根据目录内容保持不变(即空文件A仅),同时进行的更改叉目录持续存在。
这是我能给你的最简单的例子,请记住根据可能包含很多文件,因此这样做的目的只是为了尽可能避免复制这些文件。
你知道这是否可能吗?如果是这样,怎么办?
谢谢
答案1
你可以看一下覆盖文件系统,或者在某些发行版上仍然可用奥夫斯。
这是OverlayFS的描述Linux 内核文档:
覆盖文件系统
本文档描述了在 Linux 中提供覆盖文件系统功能的新方法的原型(有时称为联合文件系统)。覆盖文件系统尝试呈现一种文件系统,该文件系统是将一个文件系统覆盖在另一个文件系统之上的结果。
这是一个 OverlayFS 的工作示例。它需要两个额外的目录,一个用于保留永久更改:所有数据都将写入那里,因此磁盘空间将消耗在那里,以及同一文件系统中的一个空工作目录。
因此,假设您的目录可以位于三个不同的文件系统中,并且安装为/fs1
,/fs2
并且/fs3
(当然所有目录都可以位于同一文件系统上):
/fs1/base
/fs2/delta
/fs2/work
/fs3/fork
如上一个链接中所述,您可以使用以下命令安装最终的合并视图 ( /fs3/fork
):
mount -t overlay overlay -olowerdir=/fs1/base,upperdir=/fs2/delta,workdir=/fs2/work /fs3/fork
就是这样。您必须阅读文档才能了解限制(例如:何时涉及 NFS 等)