ln命令可以生成軟鏈接和硬鏈接,也可叫做符號(hào)鏈接和實(shí)體鏈接。 有興趣深入理解的可以查閱相關(guān)文檔,一般的讀者只需記住以下幾點(diǎn)即可:
不管是軟鏈接還是硬鏈接都不會(huì)額外增加磁盤空間(雖然實(shí)際情況可能會(huì)多占用1個(gè)block)
軟鏈接會(huì)占用1個(gè)inode,而硬鏈接不占用inode(想深究的可以自行查閱,不深究的可以直接略過(guò))
硬鏈接不能跨文件系統(tǒng),不能鏈接目錄(可以得出軟鏈接是可以的)。
為了更好理解舉例如下:
硬鏈接:假設(shè)在當(dāng)前目錄有文件名為linuxidc.jpg(大小為1M),現(xiàn)在為它創(chuàng)建硬鏈接linuxidc-h.jpg,那么當(dāng)前目錄就有了2個(gè)文件,這2個(gè)文件除了名字不一樣其他的一模一樣,但是占用的實(shí)際磁盤空間還是只有1M,改變?nèi)魏我粋€(gè)文件的內(nèi)容另一個(gè)文件也會(huì)跟著改變;
當(dāng)你只刪除linuxidc.jpg或只刪除linuxidc-h.jpg時(shí),文件內(nèi)容都還在磁盤,只有同時(shí)刪除了這2個(gè)文件時(shí)才會(huì)真的徹底刪除該1M的占用。
軟鏈接:假設(shè)在當(dāng)前目錄有文件名為linuxidc.jpg(大小為1M),現(xiàn)在為它創(chuàng)建軟鏈接linuxidc-s.jpg,那么當(dāng)前目錄就有了2個(gè)文件,linuxidc-s.jpg是一個(gè)全新的文件大小為7bytes(等于linuxidc.jpg名稱占用的字節(jié)數(shù)),它指向linuxidc.jpg(學(xué)過(guò)C語(yǔ)言的指針理解起來(lái)會(huì)很快);
改變?nèi)魏我粋€(gè)文件的內(nèi)容另一個(gè)文件也會(huì)跟著改變,刪除linuxidc-s.jpg不影響linuxidc.jpg,但是刪除了linuxidc.jpg那么tmp-s.jpg就會(huì)失效因?yàn)樗也坏剿赶虻奈募?。
我相信通過(guò)上面例子的解釋,你應(yīng)該可以自己辨別在哪些情況選擇哪種鏈接方式了吧。
###bash###
#常用命令選項(xiàng)
#默認(rèn)硬鏈接
-s #軟鏈接
-f #如果目標(biāo)文件存在時(shí),直接移除后再創(chuàng)建(危險(xiǎn))
例子:
###bash###
#為/root/linuxidc.jpg生成軟鏈接
ln -s /root/linuxidc.jpg /tmp/linuxidc.jpg
#為/root/dir目錄生成軟鏈接
ln -s /root/dir /linuxidc/dir1
#為/root/linuxidc.jpg生成硬鏈接
ln /root/linuxidc.jpg /tmp/linuxidc.jpg
注意:
###bash###
#假設(shè)文件夾aaa下有10個(gè)文件
ln -s aaa bbb #生成aaa的軟鏈接bbb
#未來(lái)有一天當(dāng)你想要?jiǎng)h除軟鏈接bbb
#只要敲如下命令
rm -f bbb
#千萬(wàn)別大意敲如下命令,這樣會(huì)把a(bǔ)aa里面的10個(gè)文件刪除掉
rm -rf bbb/ #在使用軟連接過(guò)程中,請(qǐng)使用絕對(duì)路徑,如果使用了想對(duì)路徑,可能會(huì)出現(xiàn)連接數(shù)過(guò)多錯(cuò)誤。
責(zé)任編輯:ct
評(píng)論