国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 操作系統(tǒng) > 正文

硬鏈接和符號鏈接的區(qū)別

2024-06-28 13:27:08
字體:
供稿:網(wǎng)友
硬鏈接和符號鏈接的區(qū)別序

在linux系統(tǒng)中,內(nèi)核為每一個新創(chuàng)建的文件分配一個Inode(索引結(jié)點),每個文件都有一個惟一的inode號。

文件屬性保存在索引結(jié)點里,在訪問文件時,索引結(jié)點被復(fù)制到內(nèi)存在,從而實現(xiàn)文件的快速訪問。

鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯(lián)系的一種方法。

Linux中的兩種鏈接

Linux中包括兩種鏈接:硬鏈接(Hard Link)和軟鏈接(Soft Link),軟鏈接又稱為符號鏈接(Symbolic link)。

硬鏈接

硬鏈接是文件的別名。從技術(shù)上講,他們公用一個inode(inode中包含了一個文件的所有必要的信息,說inode就是文件也是沒有問題的)。

由于linux下的文件是通過索引節(jié)點(Inode)來識別文件,硬鏈接也可以認為是一個指向文件索引節(jié)點的指針,系統(tǒng)并不為它重新分配inode,

每添加一個一個硬鏈接,文件的鏈接數(shù)就加1, 刪除一個則鏈接數(shù)減1。

大多數(shù)系統(tǒng)不允許創(chuàng)建一個目錄的硬鏈接。在允許創(chuàng)建目錄硬鏈接的系統(tǒng)上,只有超級用戶才能才能這樣做。

不能創(chuàng)建跨文件系統(tǒng)(分區(qū))的硬鏈接(這些限制在POSIX中都不是強制性的)。

硬鏈接的創(chuàng)建語法 : ln 存在的文件 新的文件

[root@localhost link]# touch SingleFile                ;新建一個空文件[root@localhost link]# ls -ltotal 0-rw-r--r-- 1 root root 0 Mar 30 17:48 SingleFile       ;空文件的鏈接數(shù)為1[root@localhost link]# ln SingleFile HardLinkFile[root@localhost link]# ls -ltotal 0-rw-r--r-- 2 root root 0 Mar 30 17:48 HardLinkFile     ;新文件的鏈接數(shù)為2-rw-r--r-- 2 root root 0 Mar 30 17:48 SingleFile       ;舊文件的鏈接數(shù)為2[root@localhost link]# echo "Hello" > SingleFile         ;向舊文件中寫入6個Bytes的字符串[root@localhost link]# ls -ltotal 8-rw-r--r-- 2 root root 6 Mar 30 17:49 HardLinkFile     ;新文件的大小變?yōu)?個Bytes-rw-r--r-- 2 root root 6 Mar 30 17:49 SingleFile       ;舊文件的大小變?yōu)?個Bytes[root@localhost link]# cat HardLinkFile                ;顯示新文件中的內(nèi)容 Hello                                                  ;結(jié)果與向舊文件中寫入的內(nèi)容相同[root@localhost link]# rm -f HardLinkFile              ;刪除新文件(刪除舊文件也是相同的)[root@localhost link]# ls -ltotal 4-rw-r--r-- 1 root root 6 Mar 30 17:49 SingleFile       ;舊文件的鏈接數(shù)為1

軟鏈接(符號鏈接)

軟鏈接是一種特殊的文件類型,其中包含對另一個 文件/目錄 以 絕對/相對 路徑形式的引用.

軟鏈接可以看做是對一個文件的間接指針,相當(dāng)于windows下的快捷方式。

軟鏈接沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向 文件/目錄 的符號鏈接。甚至可以跨越不同機器、不同網(wǎng)絡(luò)對文件進行鏈接。

創(chuàng)建文件的軟鏈接時,軟鏈接會使用一個新的inode,所以軟鏈接的inode號和文件的inode號不同(表明他們是兩個不同的文件),

軟鏈接的inode里存放著指向文件的路徑,刪除源文件,軟鏈接也無法使用了,因為文件的路徑不存在了;刪除軟鏈接對原文件沒有任何影響。

當(dāng)我們再次創(chuàng)建這個文件時(文件名與之前的相同),軟鏈接又會重新指向這個文件(inode號與之前的不同了),而硬鏈接不會受其影響.

當(dāng)然軟鏈接也有硬鏈接沒有的缺點,因為鏈接文件包含有原文件的路徑信息,所以當(dāng)原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統(tǒng)就找不到了,

而硬鏈接就沒有這個缺陷,你想怎么移就怎么移;還有它要系統(tǒng)分配額外的空間用于建立新的索引節(jié)點和保存原文件的路徑。

軟鏈接的創(chuàng)建語法 : ln -s 存在的文件 新的文件

[root@localhost link]# touch SingleFile                                ;新建一個空文件[root@localhost link]# ln -s SingleFile SoftLinkFile                   ;創(chuàng)建一個軟鏈接[root@localhost link]# ls -ltotal 0-rw-r--r-- 1 root root  0 Mar 30 18:28 SingleFile                      ;源文件的鏈接數(shù)不變lrwxrwxrwx 1 root root 10 Mar 30 18:28 SoftLinkFile -> SingleFile      ;最前面的"l"表明此文件是一個軟鏈接,后面的提示說明指向的源文件[root@localhost link]# rm -f SingleFile                                ;刪除源文件(或者移動到別的位置)[root@localhost link]# ls -ltotal 0lrwxrwxrwx 1 root root 10 Mar 30 18:28 SoftLinkFile -> SingleFile      ;"SingleFile" 高亮閃爍,提示文件找不到[root@localhost link]# echo "World" > SoftLinkFile                       ;向軟鏈接中寫入字符串[root@localhost link]# ls -ltotal 4-rw-r--r-- 1 root root  6 Mar 30 18:29 SingleFile                      ;SingleFile 被重新創(chuàng)建lrwxrwxrwx 1 root root 10 Mar 30 18:28 SoftLinkFile -> SingleFile[root@localhost link]# cat SingleFile World[root@localhost link]# 

硬鏈接 和 軟鏈接 的區(qū)別

1、硬鏈接 和 源文件 是同一個文件;軟鏈接 和 源文件 是2個不同的文件。

2、大部分系統(tǒng)不能創(chuàng)建 目錄 的硬鏈接,軟鏈接沒有這個限制。

3、硬鏈接不能跨文件系統(tǒng)(分區(qū)),軟鏈接沒有這個限制。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

參考資料:

http://blog.chinaunix.net/uid-23208702-id-75180.html

http://blog.csdn.net/zengmuansha/article/details/7814496

http://en.wikipedia.org/wiki/Soft_link

http://blog.sina.com.cn/u/2827812045


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 伊吾县| 车致| 玉屏| 鄢陵县| 江津市| 淮南市| 手游| 门头沟区| 甘谷县| 武穴市| 当雄县| 保德县| 温州市| 黄浦区| 西充县| 深圳市| 平邑县| 密山市| 屏东市| 宁乡县| 马边| 河北区| 阳泉市| 三门峡市| 游戏| 南宁市| 威信县| 静海县| 海盐县| 云安县| 长丰县| 衡阳市| 甘南县| 宝应县| 鄂托克旗| 达日县| 阿拉善左旗| 通海县| 琼中| 繁峙县| 延寿县|