Linux的inode、軟連結、永久連結

來源:互聯網
上載者:User

  關於inode、軟永久連結的問題,最近幾天看了很多資料,驚奇的發現竟然資料之間有所衝突。有的甚至自己和自己都有衝突。現在感覺自己已經初步理解了這三個概念,發布在此,希望可以減少網路上此類錯誤文章對新手的誤導。  ln -s myfile.txt mylink                //建立符號連結,即軟連結  ln     myfile.txt hardlink        //建立永久連結  inode   Linux的檔案系統(硬碟)分為2部分:inode table 與 data area。inode table上有許多的inode, 每個inode分別記錄一個檔案的屬性與這個檔案分布在哪些datablock上(也就是我們說的指標)。inode有兩個功能:記錄檔案屬性和指標。data area由很多datablock構成,data area記錄檔案的真實內容。  永久連結

Hard Link 只是在某個目錄下新增一個該檔案的關連資料而已! 1.舉個例子來說,我的 /home/vbird/crontab 為一個 hard link 的檔案,他連結到 /etc/crontab 這個檔案,也就是說,其實 /home/vbird/crontab 與 /etc/crontab是同一個檔案,只是有兩個目錄( /etc 與 /home/vbird )記錄了 crontab 這個檔案的關連資料罷了!也就是說,我由 /etc 的 Block 所記錄的關連資料可知道 crontab 的 inode 放置在 A 處,而由 /home/vbird 這個目錄下的關連資料,contab 同樣也指到 A處的 inode! 所以,crontab 這個檔案的 inode 與 block 都沒有改變,有的只是有兩個目錄記錄了關連資料. 2.使用 hard link 設定連結檔案時,磁碟的空間與 inode 的數目都不會改變!由上面的說明來看,我們可以知道, hard link 只是在某個目錄下的 block 多寫入一個關連資料,所以當然不會用掉 inode 與磁碟空間。 3.當我們修改其中一個檔案的內容時,互為永久連結的檔案的內容也會跟著變化。如果我們刪除互為永久連結關係的某個檔案時,其它的檔案並不受影響. 4.由於 hard link 是在同一個 partition 上面進行資料關連的建立,所以 hard link 是有限制的:  a. 不能跨 Filesystem.  b. 不能 link 目錄。5.假設已經建立若干me.txt的永久連結:ln me.txt hard_me.txt ……。                 之後運行 ls -l: -rw-r--r-- 3 younes younes   40 2009-12-03 16:36 hard_me.txt ,其中橙色底紋的數字代表指向該檔案永久連結的數目。
 軟連結 
1. 軟連結也叫符號連結,他和永久連結有所不同,軟連結檔案只是其源檔案的一個標記。當我們刪除了源檔案後,連結檔案不能獨立存在,雖然仍保留檔案名稱,但我們卻不能查看軟連結檔案的內容了. 2. Symbolic Link 與 Windows 的捷徑可以給他划上等號,由 Symbolic link 所建立的檔案為一個獨立的新的檔案,所以會佔用調inode與block。
 軟永久連結的區別 
(1)軟串連可以 跨檔案系統 ,硬串連不可以 。實踐的方法就是用共用檔案把windows下的 aa.txt文字文件串連到linux下/root目錄 下 bb,cc . ln -s aa.txt /root/bb 串連成功 。ln             aa.txt /root/bb 失敗 。(2)關於 I節點的問題 。硬串連不管有多少個,都指向的是同一個I節點,會把 結點串連數增加,只要結點的串連數不是 0,檔案就一直存在 ,不管你刪除的是源檔案還是串連的檔案。只         要有一個存在,檔案就 存在(其實也不分什麼 源檔案串連檔案的 ,因為他們指向都是同一個 I節點)。 當你修改源檔案或者串連檔案任何一個的時候,其他的 檔案都會做同步的修           改 。軟連結不直接使用i節點號作為檔案指標, 而是使用檔案路徑名作為指標。所以刪除串連檔案對源檔案無影響,但是刪除源檔案,串連檔案就會找不到要指向的檔案。軟連結有自           己的inode, 並在磁碟上有一小片空間存放路徑名。(3)軟串連可以對一個不存在的檔案名稱進行串連 。(4)軟串連可以對目錄進行串連。 備忘:I節點 :它是UNIX內部用於描述檔案特性的資料結構。我們通常稱I節點為檔案索引結點(資訊結點)。i節點含有關於檔案的大部分的重要信 息,包括檔案資料區塊在磁碟上的地址。每一         個I節點有它自己的標誌號,我們稱為檔案順序號。I節點包含的資訊 :1.檔案類型  2.檔案屬主關係  3.檔案的存取權限  4.檔案的時間截 。      硬串連指通過索引節點來進行的串連。在Linux的檔案系統中,儲存在磁碟分割中的檔案不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index )。在Linux中,多個檔案名稱指向同一索引節點是存在的。一般這種串連就是硬串連。硬串連的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬串連到重要的檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的串連。只刪除一個串連並不影響索引節點本身和其它的串連,只有當最後一個串連被刪除後,檔案的資料區塊及目錄的串連才會被釋放。也就是說,檔案才會被真正刪除。軟連結檔案有點類似於Windows的捷徑。它實際上是特殊檔案的一種。在符號串連中,檔案實際上是一個文字檔,其中包含的有另一檔案的位置資訊。軟連結是另一個檔案,作用可以理解為一個指標,作用在這個檔案上的操作除了刪除都直接轉向實際指向檔案,由於是一個真實的檔案所以佔用磁碟空間 。永久連結可以認為不是一個檔案,它只是實際檔案的一個別名,它的作用是防止真實檔案被誤操作,給一個檔案建立永久連結後,他們互為別名,刪除其中任一個,只會刪除該別名,實際檔案並不會被刪除。由於只是別名沒有任何其他資訊,所以並不佔用原始檔案大小的磁碟空間。
  參考資料:http://blog.chinaunix.net/u1/36085/showart_412257.html                http://dianping.blog.51cto.com/427241/95041                http://hi.baidu.com/lamron/blog/item/bf5a6a4c9af311fbd62afcc6.html 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.