linux链接 .o,Linux 链接概念 - osc_8ieji7o1的个人空间 - OSCHINA - 中文开源技术交流社区...
1.Linux 鏈接概念
Linux 鏈接分兩種, 一種被稱作硬鏈接(Hard Link),另一種被稱為符號(hào)鏈接(Symbolic Link).默認(rèn)情況下,ln 命令產(chǎn)生硬鏈接。
硬連接
硬鏈接指通過索引節(jié)點(diǎn)來進(jìn)行連接。再Linux的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給他分配一個(gè)編號(hào),稱為索引節(jié)點(diǎn)號(hào)。再Linux中,東哥文件名指向同一索引節(jié)點(diǎn)是存在的。比如:A 是 B 的 硬鏈接(A和B都是文件名)則A的目錄項(xiàng)中的inode節(jié)點(diǎn)號(hào)與B 的目錄項(xiàng)中的inode節(jié)點(diǎn)號(hào)相同,即一個(gè) inode 節(jié)點(diǎn)對(duì)應(yīng)兩個(gè)不同的文件名,兩個(gè)文件名指向同一個(gè)文件,A 和 B 對(duì)文件系統(tǒng)來說是完全平等的。刪除其中任何一個(gè)都不會(huì)影響另外一個(gè)的訪問。
硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?duì)應(yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會(huì)被釋放。也就是說,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。
軟連接
另外一種連接稱之為符號(hào)連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似于 Windows 的快捷方式。它實(shí)際上是一個(gè)特殊的文件。在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的軟鏈接(A 和 B 都是文件名),A 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)與 B 的目錄項(xiàng)中的 inode 節(jié)點(diǎn)號(hào)不相同,A 和 B 指向的是兩個(gè)不同的 inode,繼而指向兩塊不同的數(shù)據(jù)塊。但是 A 的數(shù)據(jù)塊中存放的只是 B 的路徑名(可以根據(jù)這個(gè)找到 B 的目錄項(xiàng))。A 和 B 之間是“主從”關(guān)系,如果 B 被刪除了,A 仍然存在(因?yàn)閮蓚€(gè)是不同的文件),但指向的是一個(gè)無效的鏈接。
2.通過實(shí)驗(yàn)加深理解
[oracle@Linux]$ touch f1 #創(chuàng)建一個(gè)測(cè)試文件f1
[oracle@Linux]$ ln f1 f2 #創(chuàng)建f1的一個(gè)硬連接文件f2
[oracle@Linux]$ ln -s f1 f3 #創(chuàng)建f1的一個(gè)符號(hào)連接文件f3
[oracle@Linux]$ ls -li #-i參數(shù)顯示文件的inode節(jié)點(diǎn)信息
total 09797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11f19797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11f29797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1
從上面的結(jié)果中可以看出,硬連接文件 f2 與原文件 f1 的 inode 節(jié)點(diǎn)相同,均為 9797648,然而符號(hào)連接文件的 inode 節(jié)點(diǎn)不同。
[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm-f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such fileor directory
通過上面的測(cè)試可以看出:當(dāng)刪除原始文件 f1 后,硬連接 f2 不受影響,但是符號(hào)連接 f1 文件無效
3.總結(jié)
依此您可以做一些相關(guān)的測(cè)試,可以得到以下全部結(jié)論:
1).刪除符號(hào)連接f3,對(duì)f1,f2無影響;
2).刪除硬連接f2,對(duì)f1,f3也無影響;
3).刪除原文件f1,對(duì)硬連接f2沒有影響,導(dǎo)致符號(hào)連接f3失效;
4).同時(shí)刪除原文件f1,硬連接f2,整個(gè)文件會(huì)真正的被刪除。
總結(jié)
以上是生活随笔為你收集整理的linux链接 .o,Linux 链接概念 - osc_8ieji7o1的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 计划任务 实例,计划任务 c
- 下一篇: 支付宝利得利怎么样?产品的风险来自这里