一直沒有深刻了解過連接這塊的知識,昨晚有個朋友問我這問題,一會兒激發了個人興趣。今天早上過來看了看鳥哥的書而後在stackoverflow上找了一番,感受本身如今的理解到位了,起碼這樣理解容易記憶。先來作個實驗,在咱們的用戶目錄下,創建一個測試文件夾,而後新建一個文件,並建立這個文件的軟連接和硬連接。以下: html
vim file1 #新建文件 ln -s file1 file1.soft #軟連接 ln file1 file1.hard #硬連接
緊接着,我偶們看下這三個文件的具體信息: node
咱們發現軟連接的文件屬性是l,而硬連接和文件同樣,都是-,而且軟連接的文件比較小,而硬連接文件大小和原文件同樣。緊接着,咱們修改下file1文件,而後接着看文件信息: vim
咱們發現,修改完file1後,file1.hard的修改時間也同步發生變化,可是file1.soft的文件時間信息沒有發生變化。咱們再修改下file1.soft文件,而後查看文件信息,一樣發現file1和file1.hard文件的時間信息發生了改變,而file1.soft文件時間信息仍然沒有改變。道理先不講,繼續來。 測試
Linux童鞋他只認識數字,其餘的啥都不懂,因此在使用Linux的時候,咱們不少地方都對應一個數字,好比進程號、權限值等等,文件在Linux中一樣也是經過數字來標識的,這個數字就叫文件的索引節點(inode),每一個文件都有一個惟一的索引節點。咱們能夠經過「ls -i」來查看文件的inode節點信息,以下: spa
咱們驚奇的發現file1和file1.hard的inode節點值是同樣的,這個時候不知道你是否是恍然大悟,由於他們的inode值同樣,那Linux在更新文件的時候會根據inode去找到相應的文件而後更新,而每次更新都會找到兩個文件。 .net
最後來一句話總結軟連接和硬連接: unix
軟連接:至關於快捷方式,能夠爲全部文件創建軟連接。 code
硬連接:至關於給文件起了個別名,連接文件和源文件實際上是同一個文件。不能用於目錄。 htm