硬連接記錄的是目標(biāo)的 inode,符號(hào)連接記錄的是目標(biāo)的 path。
軟連接就像是快捷方式,而硬連接就像是備份!符號(hào)連接可以做跨分區(qū)的 link;而 硬連接由于 inode 的緣故,只能在本分區(qū)中做 link.所以,符號(hào)連接的使用頻率要高的多。
存在兩種不同類型的鏈接,軟鏈接和硬鏈接。修改其中一個(gè),硬連接指向的是節(jié)點(diǎn)(inode),而軟連接指向的是路徑(path)
軟鏈接文件
軟鏈接又叫符號(hào)鏈接,這個(gè)文件包含了另一個(gè)文件的路徑名??梢允侨我馕募蚰夸洠梢枣溄硬煌募到y(tǒng)的文件。和win下的快捷方式差不多。鏈接文件甚至可以鏈接不存在的文件,這就產(chǎn)生一般稱之為"斷鏈"的問(wèn)題(或曰“現(xiàn)象"),鏈接文件甚至可以循環(huán)鏈接自己。類似于編程語(yǔ)言中的遞歸。
命令格式:
代碼:
ln [-s] source_path target_path
硬鏈接文件
info ln 命令告訴您,硬鏈接是已存在文件的另一個(gè)名字,硬連接的命令是
代碼:
ln -d existfile newfile
引用:
硬鏈接文件有兩個(gè)限制
1、不允許給目錄創(chuàng)建硬鏈接;
2、只有在同一文件系統(tǒng)中的文件之間才能創(chuàng)建鏈接。
對(duì)硬鏈接文件進(jìn)行讀寫和刪除操作時(shí)候,結(jié)果和軟鏈接相同。但如果我們刪除硬鏈接文件的源文件,硬鏈接文件仍然存在,而且保留了愿有的內(nèi)容。這時(shí),系統(tǒng)就“忘記”了它曾經(jīng)是硬鏈接文件。而把他當(dāng)成一個(gè)普通文件。修改其中一個(gè),與其連接的文件同時(shí)被修改
代碼:
$umask 022
$ cp /etc/httpd/conf/httpd.conf /usr/sam
原來(lái)前面做的試驗(yàn),改變了系統(tǒng)默認(rèn)的umask值,現(xiàn)在改回來(lái)為022,
舉個(gè)httpd.conf文件做例 子
代碼:
$ ln httpd.conf httpd1.conf
$ ln -s httpd.conf httpd2.conf
第一條為硬鏈接,第二條為軟鏈接
代碼:
$ ls -li
代碼:
總用量 80
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd1.conf
1077668 lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf ->; httpd.conf
1077669 -rw-r--r-- 2 sam adm 34890 10月 31 00:57 httpd.conf
可以看到,使用ls -li,軟連接只產(chǎn)生了10字節(jié)的快捷而已,硬連接卻實(shí)實(shí)在在的的拷貝。最前面的inode硬鏈接和源文件是一樣的,而軟鏈接不一樣,具體看一下回復(fù)
對(duì)http1.conf進(jìn)行編輯,可以發(fā)現(xiàn)httpd.conf也發(fā)生了一樣的變化
代碼:
$ rm httpd.conf
現(xiàn)在刪除鏈接的源文件,來(lái)比較不同之處
代碼:
$ ls -l
總用量 44
drw-r--r-- 2 sam adm 4096 10月 30 20:14 file6
-rw-r--r-- 1 sam adm 34890 10月 31 00:57 httpd1.conf
lrwxrwxrwx 1 sam adm 10 10月 31 00:58 httpd2.conf ->; httpd.conf
我的結(jié)論就是:硬鏈結(jié)只有全部被刪除的時(shí)候,文件才無(wú)法訪問(wèn),但是軟鏈接,只要他的源文件消失了,這個(gè)文件就無(wú)法訪問(wèn)了。軟鏈接就是記錄了文件路徑的一種特殊文件。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。