Linux下的硬鏈接與軟鏈接
阿新 • • 發佈:2018-02-13
pan 如果 標識 ima 其中 new -i works jpg 。
。
本文總結自:
https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html#fig2
一個文件可以用下圖表示:
其中,文件名是我們能看到的那個名字。
inode被包含在元數據(metadata)中,元數據中記錄文件的附加屬性,比如文件大小,創建時間等等。
inode是索引節點號,是文件的唯一標識。可使用命令:
ls -i
來查看
data blocks是文件數據塊,記錄的是文件的真實內容。
這裏要說一句:
當我們用rm刪除文件的時候,僅僅是解除filename和inode的引用,一般來說並不會摧毀問文件數據。
而硬鏈接,就相當於對同一個inode增加了一個別名
所以用rm刪除文件的時候,如果對inode創建了硬鏈接,則還可以通過另一個filename來訪問。
硬鏈接的創建方法:
ln oldfile newfile
軟鏈接,則是創建一個data block,這個data block中存儲的是另外一個filename。
所以當我們用rm刪除了file,那麽cat softlink將不會得到實際文件的輸出。
軟鏈接的創建方法:
ln -s oldfile newfile
使用ls -l 命令可以看到文件的鏈接數,這個信息出現在輸出的第二列.
創建軟鏈接時,文件的鏈接數不會增加
同時,可以看到->符號,這個符號的指向是從軟鏈接文件指向源文件
使用ls -i指令可以發現,硬鏈接文件的inode號碼和源文件相同,軟鏈接文件的inode號碼和源文件不同,這和以上的分析是相同的。
Linux下的硬鏈接與軟鏈接