Centos常用命令之:ln


在linux中[ln]這個命令用來創建連接文件。

共有兩種連接文件:一種是類似與Windows的快捷方式(軟鏈接),另一種就是通過文件系統的inode來產生的新的文件名(硬鏈接)。

這里解釋下什么叫inode。

我們在講解[ls]命令的時候,說過[-i]這個選項可以查看到該文檔的inode。

其中最前面一列的數字就表示inode,它保存了該文檔很多信息,其中有一項就是該文件真正內容的指向。

在linux的文件系統中,我們上面看到的Desktop,Documents這些個文件夾中其實並沒有真正的保存數據,而只是一個文件檔的名字而已。

真正的數據是保存在block中。

這個文件檔的inode中記錄了該文檔的很多信息,包括指向真實保存數據的block信息。

 

硬鏈接

由於硬鏈接有不可以垮文件系統,不能為目錄創建等限制,因此使用較少。

創建命令 ln 文件名 新連接名

實例

[fuwh@localhost stu]$ ll -i
總用量 4
391838 -rw-rw-r--. 1 fuwh fuwh 58 7月  24 19:11 test.txt
[fuwh@localhost stu]$ ln test.txt test2.txt
[fuwh@localhost stu]$ ll -i
總用量 8
391838 -rw-rw-r--. 2 fuwh fuwh 58 7月  24 19:11 test2.txt
391838 -rw-rw-r--. 2 fuwh fuwh 58 7月  24 19:11 test.txt
[fuwh@localhost stu]$

可以看到這時候,兩個文檔的inode是一樣的,而且連接數也從1變成了2。

這時候,不論修改哪個文檔,內容都會一起變。因為他們都是指向同一個block。

但是當你刪掉了其中一個文檔的時候,是對另一個沒有影響。

 

軟鏈接

這個就類似於Windows的快捷方式,使用較多。

使用方式:ln [-sf] 源文件 目標文件

選項:-s 就表示創建軟鏈接了,不加的話就是創建硬鏈接

     -f 表示存在的時候刪除在創建

實例

可以看到,新創建的軟連接和源文件的inode是不一樣的。

需要注意的是,新鏈接的大小為5,這剛好就是源文件名的5個字符。而他的名字中,也正確的顯示了指向哪個文件。

因為在軟鏈接中,只是保存了指向的文件的名字而已。當編輯軟鏈接這個文件的時候,首先通過指向的文件,找到指向的文件,

然后通過指向文件的inode來找到實體存放的inode,所以我們編輯軟鏈接文件的時候,實際上修改的就是真是存放的block中的內容。

 


免責聲明!

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



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