硬链接与符号链接的比较?
????今天就說說硬鏈接(實體鏈接)與符號鏈接(類似Windows的快捷方式)的不同?
????首先我們應知道:
????每個檔案都會占用一個inode ,檔案內容由 inode記錄來指向;
想要讀取該檔案,必須要經(jīng)過目錄記錄的文件名來指向正確的inode號才能通過block讀取數(shù)據(jù)。
硬鏈接:只是在目錄下新增一筆檔名鏈接到某inode號碼的關聯(lián)記錄而已,不占用空間大小。
重點:hard link 只是在某個目錄下的block多寫入一個關聯(lián)數(shù)據(jù)而已,既不會增加inode也不會減少block。
????借用鳥哥書中的例子來說,假如我系統(tǒng)有個/root/crontab他是 /etc/crontab的實體鏈接,也就是說這兩個檔名 連結到同一個 inode , 自然這兩個文件名癿所有相關信息都會一模一樣(除了文件名之外)。實際的情況
????可以如下所示:
[root@www ~]# ln /etc/crontab /root/crontab
[root@www ~]# ll -i /etc/crontab /root/crontab
1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /etc/crontab
1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /root/crontab
????缺點:不能跨Filesystem和link目錄 ? ? ? ? ? ? ? ?具體見鳥哥的私房菜pdf 261頁
????符號鏈接:就是建立一個獨立的檔案,而這個檔案會讓數(shù)據(jù)的讀取向它link文檔的數(shù)據(jù)。
重點:當來源檔被刪除以后,symbolic link 的的檔案會『開不了』,會一直說『無法開啟某檔
案!』。實際上就是找不到原始『檔名』而已啦!
????舉例來說,我們先建立一個符號鏈接文件鏈接到/etc/crontab去看看:
[root@www ~]# ln -s /etc/crontab crontab2
[root@www ~]# ll -i /etc/crontab /root/crontab2
1912701 -rw-r--r-- 2 root root 255 Jan 6 2007 /etc/crontab
654687 lrwxrwxrwx 1 root root 12 Oct 22 13:58 /root/crontab2 ->
/etc/crontab
????由上的結果我們可以知道兩個檔案指向不同的inode號碼,當然就是兩個獨立的檔案存在!而且連
結檔的重要內容就是它會寫上目標檔案的『文件名』,你可以發(fā)現(xiàn)為什么上圖中連結檔的大小為12
bytes呢?因為箭頭(-->)右邊的檔名『/etc/crontab』總共有12個英文,每個英文占用1個 byes ,
所以檔案大小就是12bytes了!
????缺點:如果你做了這樣的連結: ln -s /bin /root/bin
????那么如果你進入/root/bin這個目錄下,『請注意!該目錄其實是/bin這個目錄,因為你做了連結
檔了!』所以,如果你進入/root/bin這個剛剛建立的鏈接目錄,并且將其中的數(shù)據(jù)殺掉時,嗯!
/bin里面的數(shù)據(jù)就通通不見了!這點請千萬注意!所以趕緊利用『rm /root/bin 』 將這個連結檔刪除
吧!因為它類似Windows的快捷方式切記。
轉載于:https://blog.51cto.com/2845621599/1437382
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的硬链接与符号链接的比较?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DAT模块简介
- 下一篇: 【字符串问题】求一个字符串中重复出现的最