适用于 Windows 的 UnionFS 类文件系统

适用于 Windows 的 UnionFS 类文件系统

我正在寻找像 Windows 7 中的 UnionFS 那样工作的东西。我的用例:在只读目录中拥有干净的代码工作目录,并在联合文件系统中对其进行编译,该文件系统将编译后的二进制文件在逻辑上存储在相同的位置,但物理上存储在不同的目录中。

图书馆不是这样运作的,尽管它们被接受为答案UnionFS 与 Windows 类似,虚拟合并文件夹——它们只在一个地方显示顶级目录。

代码本身非常庞大(2GB 的数据),我想避免在构建服务器中的每个构建中复制它。

答案1

目前为止,这是可能的,但是使用 rclone 联合挂载与本地目录“remotes”相当复杂。

克隆联盟允许 mergerfs 样式覆盖,包括新文件的创建位置等的策略。

克隆允许您在本地安装任何类型的 rclone。它基于操作系统,这是 Windows 的 FUSE 等效版本。性能不会太出色……

答案2

有一个功能统一写入过滤器 (UWF) 覆盖,但我不知道如何使用它。

答案3

您可以使用符号链接创建一个简易的 unionfs:重现源文件的目录结构,但为文件创建链接(符号或硬链接)。只要构建系统不尝试修改源文件,这应该适合您的目的。

使用 GNU cp,它就像cp -al或一样简单cp -as。但我不知道是否有可以理解 Windows 链接的 GNU 工具端口。

如果您需要调用 mklink 命令,可以使用 POSIX 工具来完成(警告,直接输入到浏览器中):

cd SOURCE
find -type d -exec sh -c 'cd BUILDDIR && mkdir "$@"' _ {} +
find -type f -exec sh -c 'mklink "$1" "BUILDDIR/$1"' _ {} \;

我认为有一种涉及 Powershell 的 Windows 原生方法,但我不知道它是什么样子。如果您的目录树很大并且磁盘速度很快,那么可能值得研究一下,因为在 Windows 下分叉往往很慢,而上面的命令需要分叉很多。

答案4

我发现了这一点,但我真的不知道它的效果如何:

相关内容