如何将一个目录合并到另一个目录中?

如何将一个目录合并到另一个目录中?

有人可以告诉我是否有某种方法可以将一个目录“合并”到另一个目录中?

即让我拥有/some/directories/structure子目录/文件。现在我想将它“植入”到/etc例如中。即我需要将所有子目录/文件/some/directories/structure添加到(不应替换当前内容/etc/etc或其他目录中。

编辑:

好的。假设我有一个名为 的目录prog。它包含几个配置文件。当我开发程​​序时,该目录存储在我的主目录中的某个位置,并且必须将其安装到/etc工作系统中。现在我想调试我的程序,但要运行它,我需要prog目录(存储在我的主目录中)可以在/etc.所以我的问题是:我可以以某种“虚拟”方式执行此操作(即无需复制、移动、同步甚至链接到prog/etc吗?也许有某种方法可以安装它,但是(再次)无需在/etc.

对我来说,关键是:“不要忘记/etc”中不需要的东西。

哦...我希望我的问题现在一切顺利。 :)

答案1

我也没有完全明白你想要的,说实话,这对我来说根本没有意义。但是当你谈论虚拟和坐骑时 - 我怀疑你正在考虑某个方向绑定挂载?!

什么是绑定安装?

Linux 绑定挂载

在 Linux 下,绑定挂载可作为内核功能使用。您可以通过传递 --bind 命令行选项或绑定安装选项,使用 mount 命令创建一个。以下两个命令是等效的:

# mount --bind /some/where /else/where

# mount -o bind /some/where /else/where

这里,“设备”/some/where 不是像磁盘文件系统那样的磁盘分区,而是现有的目录。挂载点 /else/where 必须像往常一样是现有目录。

请注意,无论哪种方式都没有指定文件系统类型:进行绑定挂载不涉及文件系统驱动程序,它从原始挂载复制内核数据结构。

答案2

不知道您的数据有多大,但您可以rsync将数据从源移动到目的地。以下命令不会从您的目的地删除任何内容。

rsync -avz /some/directories/structure/ /etc/

以下命令将在您的目标目录中进行更改。

rsync -av --delete /some/directories/structure/ /etc/

/etc/这将删除其中不存在的文件/some/directories/structure/

答案3

我不清楚你的意图,但也许你需要的是 /etc 中的符号链接。如果有,请咨询man ln

答案4

我会改变这个。您需要正在开发的代码来访问它认为是的目录中的某些配置文件/etc/(并且可能是该目录中的子目录,尽管您不清楚)。

不要试图找到一种在文件系统级别伪造的方法,而是像许多其他应用程序一样提供可自定义的配置目录。

告诉您的应用程序配置文件存在于/home/user/prog/etc/或中,/usr/local/etc/并以这种方式进行调试。由于多种原因,硬编码配置目录是不好的。

一旦您可以更改代码查找配置的位置,您就可以根据需要进行尽可能多的测试,而无需任何访问权限,/etc/我猜这是您遇到的根本问题。

相关内容