這兩牽扯到鏈接,那么先介紹以下鏈接济瓢。
在文件系統(tǒng)中荠割,有一種可以把不同的文件相連接到一起的機制,這個機制叫做鏈接旺矾。通俗的話來說就是打開兩個不同的文件夾蔑鹦,其實進去的是同一個。它可以把一個文件用不同的名字和路徑來表示出來箕宙。系統(tǒng)通過inode(索引節(jié)點嚎朽,文件唯一標(biāo)識)來識別是否為同一個文件,無論系統(tǒng)上有有多少個鏈接柬帕,在磁盤上只有一個唯一的inode哟忍,只要這個文件的的鏈接數(shù)不為0,那么這個文件件的inode會一直存在陷寝,文件會一直保存锅很。
例如用ls-l可以查看文件的詳情:
在這文件中,綠色的3txt與2.txt構(gòu)成了一個鏈接凤跑。在Linux中->就代表著鏈接爆安。
硬鏈接:
硬鏈接就相當(dāng)于一個指針,指向文件的索引節(jié)點仔引,系統(tǒng)并不會為他重新分配新的inode扔仓,但是沒添加一個硬鏈接,文件鏈接數(shù)會加一咖耘。
硬鏈接允許一個文件同時又多個路徑名当辐,用戶只刪除一個硬鏈接并不影響這個文件的inode與其他相連接,只有最后一個鏈接被刪除后鲤看,這個文件的inode就釋放,數(shù)據(jù)塊就保持在空閑狀態(tài)允許被寫入耍群。用這種硬鏈接可以有效的防止誤刪除义桂。但是硬鏈接不能跨分區(qū)創(chuàng)建,不再同一個分區(qū)是無法直接與數(shù)據(jù)塊的inode相連接蹈垢。也不允許給目錄創(chuàng)建硬鏈接慷吊。在創(chuàng)建硬鏈接時可以相對于當(dāng)前路徑去創(chuàng)建,每創(chuàng)建一個硬鏈接就會會增加額外的記錄項以引用文件曹抬。硬鏈接也不會占用節(jié)點號溉瓶,但會增加鏈接數(shù)。同一個文件無論創(chuàng)建多少個硬鏈接,他們的屬性都是完全相同的堰酿,這相當(dāng)于是一個物理文件的不同名字疾宏。就像我們?nèi)艘粯樱粋€人可以有多個名字触创,無論你叫什么名字坎藐,你還是你,你自己的屬性是不會改變的哼绑,總不會換一個名字就瘦了幾斤或者長高了吧岩馍。
語法:
**ln filename [linkname]**
軟鏈接:
又被稱作為符號鏈接。軟鏈接我們可以理解為windowx的快捷方式抖韩,相信大家都用過吧蛀恩。創(chuàng)建一個軟鏈接其實就是創(chuàng)建一個特殊的文件,這個文件內(nèi)容就是這個鏈接的信息茂浮。軟鏈接文件的大小就是這個路徑的大小双谆。軟鏈接就是一個位置的處理,跟硬鏈接有本質(zhì)的區(qū)別励稳。舉個例子:當(dāng)你對A創(chuàng)建一個軟鏈接佃乘,然后把A文件刪除了,那時這個鏈接并不會一起唄刪除驹尼,只是失效了趣避。當(dāng)你再重新在原來的地方創(chuàng)建一個以A命名的文件,再使用原來這個軟鏈接新翎。你會發(fā)現(xiàn)程帕,又連接進了新建的這個A文件里了。說明軟鏈接并不指定文件地啰,而是指定的位置愁拭,等于給這個位置創(chuàng)建了另一條路徑。就相當(dāng)于家房子的地址如果你搬家不住這了那么這個地址會不被你使用了亏吝,并不是這個地址就不存在了岭埠。當(dāng)小明買了你家的房子住進去后,這個地址就會變?yōu)樗麄兗业牡刂肺蹬浮K攒涙溄泳褪且粋€鏈接符惜论,指向了一個地址而已。創(chuàng)建軟鏈接后文件的鏈接數(shù)不會增長止喷,不會增加目標(biāo)inode的引用計數(shù)馆类,因為只是指向一個地址,所以軟鏈接不但可以連接目錄而且還能跨分區(qū)進行連接弹谁。
語法:
** ln -s filename [linkname]**