溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下不創建文件夾的硬鏈接怎么實現

發布時間:2022-01-25 09:47:13 來源:億速云 閱讀:160 作者:iii 欄目:開發技術

這篇文章主要介紹“Linux下不創建文件夾的硬鏈接怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Linux下不創建文件夾的硬鏈接怎么實現”文章能幫助大家解決問題。

Linux 系統中有軟鏈接和硬鏈接兩種特殊的“文件”,軟鏈接可以看作是Windows中的快捷方式,可以讓你快速鏈接到目標檔案或目錄,硬鏈接則透過文件系統的inode來產生新檔名,而不是產生新檔案。

Linux下不創建文件夾的硬鏈接怎么實現

使用方面考慮,會產生遞歸黑洞,舉例:

文件夾 a,b,在a下面創建b文件夾得硬鏈接c,在b下面創建a文件夾的硬鏈接d,

ls a ,會看到c,ls c,看到b下的文件夾d,再ls d又看到c,這樣可以無限ls下去

軟連接在訪問時readlink有遞歸次數的限制,硬鏈接就是普通inode,所以沒辦法記錄遞歸次數

代碼實現角度

代碼實現方面應該是可以做到的。首先pwd不是由文件系統拼接路徑的,而是記錄在一個全局變量中,所以cd 。。 的時候只是需要獲得上一級目錄inode的屬性來檢查權限,或者顯示屬性信息。路徑只需要簡單運算就可以得到。

每個路徑都對應一個dentry,即使是相同的inode,如果是不同path,那么dentry是不同的,dentry在內存中的hashtable是通過父目錄的dentry來hash,而不是父目錄inode,

path_walk的過程中,如果父目錄是軟連接,則會readlink找到被連接的父目錄inode,再用該inode來獲取名字空間。

關于“Linux下不創建文件夾的硬鏈接怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女