Linux

通過 mount –bind … 命令從 Debian 中的符號連結創建另一個符號連結

  • September 9, 2021

我有疑問如何從 Debian 下的另一個符號連結(使用 mount –bind 命令)創建符號連結。

它們是兩種情況:

第一種情況: 我在 /main/data 中有核心數據。在“數據”文件夾中有一些文件(文件夾、文件等)。我在其中創建了指向另一個文件夾的符號連結,例如:

mount –bind /main/data /user/admin

接下來創建另一個符號連結,不是來自核心文件夾,而是來自管理文件夾,例如:

mount –bind /user/admin /public/user1

一切正常,因為我創建了文件夾到文件夾的符號連結,第二種情況:

**第二種情況:**我只想從 /main/data 掛載單個文件(通過使用 mount –bind 命令等),就像第一種情況一樣。首先是管理員,然後將整個文件夾掛載到 /user/admin 到 user1。首先,我需要在 /user/admin 中創建空白文件,然後安裝核心文件。工作良好的步驟 -範例:

觸摸 /user/admin/myNewFile.txt

mount –bind /main/data/information.txt /user/admin/myNewFile.txt

但最後一部分不起作用 -例如:

mount –bind /user/admin /public/user1

最後一個命令將文件夾從 /user/admin 掛載到 /public/user1,這會導致將所有文件和文件夾掛載在 /user/admin 中。在 /public/user1 中將出現“myNewFile.txt”,但該文件為空白,大小為 0。

問題是是否有任何 mount 命令選項可以正確安裝,或者是否有任何其他解決此問題的方法。

非常感謝您的建議。

mount --bind命令創建綁定掛載,而不是符號連結;實際的符號連結是使用該ln -s命令創建的。

當您使用 時mount --bind /main/data/information.txt /user/admin/myNewFile.txt,您將一個文件系統的一部分(特別是一個文件)附加到另一個文件系統之上。儘管information.txtnow 的內容出現在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是文件系統的那一部分,那麼您將看到那些底層的空目錄/文件,而不是原始文件系統/文件中已安裝的文件系統/文件。

引用自:https://unix.stackexchange.com/questions/668274