今天就說說硬連接(實體連接)與符號連接(相似Windows的快捷方式)的不一樣?node
首先咱們應知道:ide
每一個檔案都會佔用一個inode ,檔案內容由 inode記錄來指向;crontab
想要讀取該檔案,必需要通過目錄記錄的文件名來指向正確的inode號才能經過block讀取數據。文檔
硬連接:只是在目錄下新增一筆檔名連接到某inode號碼的關聯記錄而已,不佔用空間大小。it
重點:hard link 只是在某個目錄下的block多寫入一個關聯數據而已,既不會增長inode也不會減小block。class
借用鳥哥書中的例子來講,假如我係統有個/root/crontab他是 /etc/crontab的實體連接,也就是說這兩個檔名 連結到同一個 inode , 天然這兩個文件名癿全部相關信息都會如出一轍(除了文件名以外)。實際的狀況pdf
能夠以下所示:數據
[root@www ~]# ln /etc/crontab /root/crontab英文
[root@www ~]# ll -i /etc/crontab /root/crontabtab
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頁
符號連接:就是創建一個獨立的檔案,而這個檔案會讓數據的讀取向它link文檔的數據。
重點:當來源檔被刪除之後,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號碼,固然就是兩個獨立的檔案存在!並且連
結檔的重要內容就是它會寫上目標檔案的『文件名』,你能夠發現爲何上圖中連結檔的大小爲12
bytes呢?由於箭頭(-->)右邊的檔名『/etc/crontab』總共有12個英文,每一個英文佔用1個 byes ,
因此檔案大小就是12bytes了!
缺點:若是你作了這樣的連結: ln -s /bin /root/bin
那麼若是你進入/root/bin這個目錄下,『請注意!該目錄實際上是/bin這個目錄,由於你作了連結
檔了!』因此,若是你進入/root/bin這個剛剛創建的連接目錄,而且將其中的數據殺掉時,嗯!
/bin裏面的數據就統統不見了!這點請千萬注意!因此趕忙利用『rm /root/bin 』 將這個連結檔刪除
吧!由於它相似Windows的快捷方式切記。