![挂载并合并文件夹内容](https://linux22.com/image/132658/%E6%8C%82%E8%BD%BD%E5%B9%B6%E5%90%88%E5%B9%B6%E6%96%87%E4%BB%B6%E5%A4%B9%E5%86%85%E5%AE%B9.png)
有没有办法将一个文件夹内容挂载到另一个文件夹?
假设我有 2 个包含以下内容的文件夹;
Folder1 Folder2
file1 file2
我基本上想让Folder1 中Folder2 的所有内容可见。所以新的内容应该是这样的;
Folder1 Folder2
file1 file2
file2
我还希望当我对文件夹 2 进行任何更改时更新文件夹 1 的内容。假设我在Folder2 中创建了file3。我期待在它们两个下看到新文件。
Folder1 Folder2
file1 file2
file2 file3
file3
所以一般规则应该是;
- 如果您在Folder2 下创建/删除/修改任何文件,该文件也会在Folder1 下可见。
- 如果您在文件夹 1 中创建/删除/修改任何文件(属于文件夹 2,例如删除文件 2),这些更改将在文件夹 2 中完成。
- 用户不应在Folder2 下看到Folder1 的任何内容。
对于这种需求有什么解决方案吗?
谢谢。
答案1
尝试使用覆盖文件系统
mount -t overlay overlay Folder1 -o index=off,workdir=$(mktemp -d),upperdir=Folder2,lowerdir=Folder1
所有文件更改都将在“Folder1”和“Folder2”下可见。但如果您更改Folder1 原始文件(示例文件1),则更改也将在Folder2 上可见。
答案2
无论如何,我不知道直接执行您所要求的操作,如果和file1
中都存在您当然会遇到问题。folder1
folder2
您可以从 到 下的每个文件/目录创建链接folder2
,folder1
这将需要 下的每个文件/目录都有一个链接folder2
。您可以创建一个脚本来保持链接更新并删除死链接。
如果您使用硬链接,那么在进行目录列表等操作时这将是无缝的。
然后,您可以用来inotify
监视folder1
并folder2
触发硬链接的创建/删除。