每一個新創建的文件都會被分配一個inode,且每個文件都有一個惟一的inode編號。我們能夠將inode簡單理解成一個指針,它指向的是文件在硬盤中的物理位置。文件的屬性也是保存在inode中。node
系統是通過inode定位文件的,而不是文件名。因此一般情況,爲了提升文件系統的執行效率,訪問過的文件的inode都會被緩存在內存中。linux
「連接數」其實就是inode的引用計數。因爲linux允許一個文件有多個名字,文件名相當於是對inode的一次引用。windows
使用ln命令創建文件連接(軟連接、硬連接),軟連接也叫符號連接(類似快捷方式),好比:bash
創建一個軟連接 sh 指向 /bin/bash,使用 ls -l 查看spa
軟連接的文件屬性和目標文件屬性徹底不一樣,按照系統設計,軟連接也要佔據一個新的inode ,也就是說軟連接是一個新的文件,不影響inode的計數。內存
/bin/bash的連接數仍為1。效率
硬連接的屬性和目標文件的屬性徹底相同,因爲引用的是相同inode,僅僅將連接數作了+1操做。引用
軟連接相當於windows中的快捷方式;im
硬連接使得同一個文件能夠擁有不一樣的路徑,還能防止被惡意刪除,因爲刪除也衹是連接數-1。img