如何在写入文件之前隐藏整个目录树并复制文件?

如何在写入文件之前隐藏整个目录树并复制文件?

我在 Linux NFS 安装上有一个大型源代码存储库,我想创建该存储库的影子副本,以便只有我在此影子存储库中写入的文件才会在我的影子存储库中被修改。所有其他文件仍保留到主原始存储库的符号链接或硬链接。

可以通过 NFS 上的硬链接来完成此操作吗?

我可以设想一个脚本,就像在版本控制系统中一样,我从原始文件中签出要修改的文件,这会导致脚本切断主存储库和影子存储库之间的链接,从而创建主存储库文件的副本,然后我可以对其进行修改。但是,我确信其他人已经为此创建了一个实用程序,我只是不知道需要使用晦涩难懂的 Linux 咒语来想出我的解决方案。

答案1

X11 窗口系统包含一组实用程序,其中包括 lndir (http://linux.die.net/man/1/lndir),它创建了一个影子目录。它创建了原始目录的副本,如下所示:

  1. 副本中的每个目录都是真实目录
  2. 副本中的每个常规文件都是原始文件的符号链接

当你想要修改文件时,你必须:

  1. 删除副本中的符号链接
  2. 将原始文件复制到目录树副本
  3. 并修改它

可能比您想要的更手动,但可能比设置新文件系统更容易。在 Ubuntu 12.04 中,这是 xutils-dev 包的一部分。

答案2

A联合金融服务基于的设置可能适合您。 UnionFS 可让您将 NFS 只读与可写合并,动态增长循环设备驱动的文件系统

相关内容