linux鏈接分兩種,一種被稱為硬鏈接(hard link),另一種被稱為軟鏈接(symbolic link)。默認(rèn)情況下,ln命令產(chǎn)生硬鏈接。本文將詳細(xì)介紹什么是linux軟鏈接和linux硬鏈接。
一、[硬鏈接]–>指通過索引節(jié)點(diǎn)來進(jìn)行連接。在linux的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個(gè)編號,稱為索引節(jié)點(diǎn)號(inode index)。在linux中,多個(gè)文件名指向同一索引節(jié)點(diǎn)是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個(gè)文件擁有多個(gè)有效路徑名,這樣用戶 就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因?yàn)閷?yīng)該目錄的索引節(jié)點(diǎn)有一個(gè)以上的連接。只刪除一個(gè)連接并不影響索引節(jié)點(diǎn)本身和 其它的連接,只有當(dāng)最后一個(gè)連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。
語法:ln 【源文件】 【硬連接文件】
[root@centos-study pc]# touch test1
[root@centos-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 dec 10 00:34 test1
[root@centos-study pc]# ln test1 test2
[root@centos-study pc]# ll
total 0
-rw-r--r-- 2 root root 0 dec 10 00:34 test1
-rw-r--r-- 2 root root 0 dec 10 00:34 test2
[root@centos-study pc]#
如果刪除上面的test1,那么test2是會繼續(xù)存在的,并且數(shù)據(jù)也會保留
[root@centos-study pc]# rm test1
rm: remove regular empty file `test1'? y
[root@centos-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 dec 10 00:34 test2
硬連接總結(jié):
(1)硬鏈接的inode相同
(2)只能對文件創(chuàng)建,不能應(yīng)用于目錄
(3)不能跨分區(qū)
二、軟鏈接
相當(dāng)于windows中的快捷方式,由于軟連接所創(chuàng)建的文件為一個(gè)獨(dú)立的新的文件,所以會占用掉indoe與block
系統(tǒng)有個(gè)/root/crontab,它是/etc/crontab的軟連接,如果刪掉源文件/root/crontab,那么/etc/crontab這個(gè)文件的數(shù)據(jù)也不能查看了,就好像windows里面的桌面快捷方 式,源文件被刪除了,快捷方式也失效了。
語法:ln -s? 【源文件或目錄】? 【軟件鏈名字】
范列:
[root@centos-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 dec 10 00:34 test2
[root@centos-study pc]# ln -s test2 test3
[root@centos-study pc]# ll
total 0
-rw-r--r-- 1 root root 0 dec 10 00:34 test2
lrwxrwxrwx 1 root root 5 dec 10 00:42 test3 -> test2
[root@centos-study pc]#
如果我刪除源文件,那么軟連接文件也將無法查看里面的數(shù)據(jù),并且查看軟連接的時(shí)候,它會一直閃。
軟連接總結(jié):
(1)可以應(yīng)用于目錄
(2)可以跨文件系統(tǒng)
(3)不會增加被鏈接文件的鏈接次數(shù)
(4)大小為指定的絕對路徑所包含的字符總數(shù)
(5)有自己的inode號
(6)權(quán)限無關(guān)緊要
三、總結(jié)