我有一个问题,如何在 Debian 下从另一个符号链接(使用 mount --bind 命令)创建符号链接。
他们是两种情况:
第一种情况: 我在/main/data 中有核心数据。在“data”文件夹中是一些文件(文件夹、文件等)。我在其中创建了另一个文件夹的符号链接,例如:
挂载--bind /主/数据/用户/管理员
接下来,不是从 core 文件夹而是从 admin 文件夹创建另一个符号链接,例如:
挂载--bind /用户/管理员/公共/用户1
一切正常,因为我创建了文件夹到文件夹的符号链接但第二种情况:
第二种情况:我只想从 /main/data 挂载单个文件(通过使用 mount --bind 命令),就像第一种情况一样。首先到 admin,然后将整个文件夹挂载到 /user/admin 到 user1。首先,我需要在 /user/admin 中创建空白文件,然后安装核心文件。工作顺利下的步骤 -例子:
触摸/user/admin/myNewFile.txt
挂载--bind /main/data/information.txt /user/admin/myNewFile.txt
但最后一部分不起作用 -例子:
挂载--bind /用户/管理员/公共/用户1
最后一个命令将文件夹从 /user/admin 挂载到 /public/user1 ,这会导致挂载所有文件和文件夹位于 /user/admin 中。在 /public/user1 中将出现“myNewFile.txt”,但该文件是空白的,大小为 0。
问题是 mount 命令是否有任何选项可以正确安装,或者是否有任何其他解决方案来解决此问题。
非常感谢您的建议。
答案1
该mount --bind
命令创建绑定安装,不是符号链接;实际的符号链接是使用该ln -s
命令创建的。
当您使用 时mount --bind /main/data/information.txt /user/admin/myNewFile.txt
,您将一个文件系统的一部分(具体来说,一个文件)附加到另一个文件系统之上。尽管 now 的内容information.txt
出现在myNewFile.txt
,但这仍然不能使该文件成为/user/admin
文件系统。通常这并不重要,但对于你的最后一个命令,它会。
mount --bind /user/admin /public/user1
进行绑定安装单身的文件系统 - 原始文件中的任何子安装点都不会被复制...包括子安装点/user/admin/myNewFile.txt
。
如果您想使用绑定挂载复制整个目录树,包括任何现有的底座就像你的一样/usr/admin/myNewFile.txt
,那么你必须使用mount --rbind
:
mount --rbind /user/admin /public/user1
您的第二种情况与第一种情况类似:
mount --bind /main/data /user/admin
进而:
mount --bind /user /mnt
如果您这样做,您可能会发现这/mnt/admin
将是一个空目录。 (或者,如果有一些文件,您会发现它们肯定不是来自 的最新文件/main/data
,而是很久以前有人尝试使用/user/admin
但未先mount --bind /main/data /user/admin
完成的一些旧垃圾。)
当您进行常规挂载或mount --bind
目录挂载时,必须首先mkdir
在目标位置创建一个空目录。然后 mount 命令将在该目录之上附加其他内容。同样,在处理mount --bind
单个文件时,您必须首先touch
在目标处创建一个空文件,以便 mount 命令可以附加一些内容。如果您然后查看mount --bind
文件系统的那部分,您将看到那些底层的空目录/文件,而不是原始文件中已安装的文件系统/文件。