Linux中檔案與目錄對應的永久連結與軟連結方式總結

來源:互聯網
上載者:User

永久連結
建立的檔案是已經存在的檔案的一個別名,當原檔案刪除時,建立的檔案仍然可以使用。
永久連結特徵:
1、擁有相同的 i節點 和相同的儲存block快,可以看做是同一個檔案
2、可通過i節點識別,i節點號相同
3、不能跨分區
4、不能針對目錄使用
5、刪除檔案,永久連結正常使用

軟連結
另外一種串連稱之為符號串連(Symbolic Link),也叫軟串連。軟連結檔案有類似於Windows的捷徑。它實際上是一個特殊的檔案。在符號串連中,檔案實際上是一個文字檔,其中包含的有另一檔案的位置資訊。
軟連結特徵:
1、類似windows捷徑
2、軟連結擁有自己的i節點和block快,但是資料區塊中只儲存原檔案的檔案名稱和i節點號,並沒有實際的檔案資料
3、lrwxrwxrwx l軟連結,軟連結檔案許可權都為rwxrwxrwx,但具體看原檔案的許可權
4、修改任意檔案,另一個都改變
5、刪除原檔案,軟連結不能使用
6、建立軟連結一定要寫絕對路徑
注意軟連結的檔案許可權為777 但是最終許可權有源檔案決定 l表示軟連結檔案。
一旦源檔案刪除,軟連結將不能使用。(這是和永久連結的主要區別)
註:建立軟連結時,源檔案要始終使用絕對路徑,否則,若建立的軟連結和源檔案不在同一個目錄時,會找不到源檔案。(永久連結不會有這種情況)
限制少,更靈活,推薦使用。

補充:
linux系統中的硬串連有兩個限制:不能跨越檔案系統和不允許普通使用者對目錄作硬串連。至於第一個限制,很好理解,而第二個就不那麼好理解  了。 對任何一個目錄用ls -l 命令都可以看到其串連數至少是2,這也說明了系統中是存在硬串連的,而且命令ln -d  也可以讓超級使用者對目錄作硬串連,這些都說明了系統限制對目錄進行硬串連只是一個硬性規定,並不是邏輯上不允許或技術上的不可行。那麼作業系統為什麼要進  行限制呢?答案可能有兩個。

先來說第一個,如果引入了對目錄的硬串連就有可能在目錄中引入迴圈,那麼在目錄遍曆的時候系統就會陷入無限迴圈當中。也許您會說,符號串連不也可以引入循 環嗎,那麼為什麼不限制目錄的符號串連呢?原因就在於在linux系統中,每個檔案(目錄也是檔案)都對應著一個inode結構,其中inode資料結構 中包含了檔案類型(目錄,普通檔案,符號串連檔案等等)的資訊,也就是說作業系統在遍曆目錄時可以判斷出符號串連,既然可以判斷出符號串連當然就可以採取 一些措施來防範進入過大的迴圈了,系統在連續遇到8個符號串連後就停止遍曆,這就是為什麼對目錄符號串連不會進入死迴圈的原因了。但是對於硬串連,由於操  作系統中採用的資料結構和演算法限制,目前是不能防範這種死迴圈的。

在說明第二個原因之前,先來看看檔案的dentry結構在系統空間中長什麼樣子和它們是怎麼存放在系統空間的。dentry結構主要包含了檔案名稱,檔案的inode號,指向父目錄dentry結構的指標和其他一些與本次討論無關的指標,這裡關鍵是那個指向父目錄的指標;系統中所有的dentry結構都  是按雜湊值存放在雜湊表中的,這裡的雜湊演算法很重要,它是取檔案名稱和檔案的父目錄dentry結構的地址一起雜湊運算出雜湊值的。現在假設有兩個目錄  /a和/b,其中/b是我們通過ln  -d命令建立起來的對/a的硬串連。這個時候核心空間中就會存在一個/a的dentry結構和一個/b的dentry結構,由上面的知識可知,/a和/b 目錄下面的每一個檔案或目錄都各自有對應的dentry結構(因為雖然/a目錄下面的檔案名稱沒有改變,但是因為dentry結構有指向父目錄dentry 的指標和計算雜湊值時考慮了父目錄dentry結構的地址,這個時候dentry結構就分身乏術了),而且這種繼承還會影響到所有子目錄下面的檔案,這樣  下來就會浪費很多系統空間了,特別是如果被硬串連的目錄中存在大量檔案和子目錄的時候就更加明顯了。這也許是第二個原因。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.