深入理解Linux的軟連結和永久連結
一直沒有深入瞭解過連結這塊的知識,昨晚有個朋友問我這問題,一下子激發了我的興趣。今天早上過來看了看鳥哥的書然後在stackoverflow上找了一番,感覺自己現在的理解到位了,起碼這樣理解容易記憶。先來做個實驗,在我們的使用者目錄下,建立一個測試檔案夾,然後建立一個檔案,並建立這個檔案的軟連結和永久連結。如下:
1vim file1 #建立檔案2ln -s file1 file1.soft #軟連結3ln file1 file1.hard #永久連結 緊接著,我偶們看下這三個檔案的具體資訊:
我們發現軟連結的檔案屬性是l,而永久連結和檔案一樣,都是-,並且軟連結的檔案比較小,而永久連結檔案大小和原檔案一樣。緊接著,我們修改下file1檔案,然後接著看檔案資訊:
我們發現,修改完file1後,file1.hard的修改時間也同步發生變化,但是file1.soft的檔案時間資訊沒有發生變化。我們再修改下file1.soft檔案,然後查看檔案資訊,同樣發現file1和file1.hard檔案的時間資訊發生了改變,而file1.soft檔案時間資訊仍然沒有改變。道理先不講,繼續來。
Linux童鞋他只認識數字,其他的啥都不懂,所以在使用Linux的時候,我們很多地方都對應一個數字,比如進程號、許可權值等等,檔案在Linux中同樣也是通過數字來標識的,這個數字就叫檔案的索引節點(inode),每個檔案都有一個唯一的索引節點。我們可以通過“ls -i”來查看檔案的inode節點資訊,如下:
我們驚奇的發現file1和file1.hard的inode節點值是一樣的,這個時候不知道你是不是恍然大悟,因為他們的inode值一樣,那Linux在更新檔案的時候會根據inode去找到相應的檔案然後更新,而每次更新都會找到兩個檔案。
最後來一句話總結軟連結和永久連結:
軟連結:相當於捷徑,可以為所有檔案建立軟連結。
永久連結:相當於給檔案起了個別名,連結檔案和源檔案其實是同一個檔案。不能用於目錄。