Linux下創建軟、硬鏈接


 在linux系統中,內核為每一個新創建的文件分配一個Inode(索引節點),每個文件都有唯一的inode號。文件屬性保存在索引節點里,在訪問文件時,索引節點被復制到內存,從而實現文件的快速訪問。

鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯系的一種方法。有硬鏈接和軟鏈接,軟鏈接又稱為符號鏈接

 

一、硬鏈接

實質上是一個指針,指向文件索引節點,系統並不為它重新分配inode。使用 ln 來創建

ln hello.c hello     建立hello.c的硬鏈接hello

特點:

1. 不允許給目錄創建硬鏈接

2. 只有在同一個文件系統才能創建(不能跨文件系統)

例子: 為file1創建一個硬鏈接,file1的鏈接數目就會增加。當刪除鏈接時,鏈接數減1,當鏈接數為0時,內核才會把文件內容從磁盤上刪除。

 

二、軟鏈接(符號鏈接)

使用 ln -s 來創建

ln -s hello.c hello     建立hello.c的軟鏈接hello

特點:

1. 類似於windows中的快捷方式

2. 允許給目錄創建軟鏈接

3. 能跨文件系統

當file1創建一個軟鏈接,file1的鏈接數目不會增加。源文件大小和鏈接文件大小是不一樣的。

三、區別

對於硬鏈接 當修改鏈接文件或者源文件時,文件會被改變,因為其本質是一個指針。

對於軟連接 刪除鏈接文件對源文件無影響,但是如果刪除源文件,鏈接文件就找不到要指向的文件。軟鏈接有自己的inode,並在磁盤上有一小片空間存放路徑名

參考:https://www.cnblogs.com/gd-luojialin/p/9216062.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM