摘要:symlinks(符號鏈接)引用文件名,hardlinks(硬鏈接)引用meta-data(元數據),而reflinks(引用鏈接)則直接引用數據。
linux上這三種不同的的鏈接文件類型分別指向文件的三個不同組成部分。即文件名(存儲在目錄中)、元數據(存儲在inode中)以及數據塊(數據本身)。下面顯示了,文件以及各個類型鏈接文件的關系。
name2 – symlink –> name1 – hardlink –> inode1 – reflink —> data
name3 – hardlink -/ /
name4 – hardlink –> inode2 —reflink -/
閒話不多說,接下來用實際應用解析一下各種鏈接類型以及它們的使用方法。首先我們創建一個文件。linux中有N中創建命令,例如echo > file ^_^。
一、符號鏈接
cp –symbolic-link name1 name2
符號鏈接類似於windows下的快捷方式,一個別名而已。
二、硬鏈接
cp –link name1 name3
其實linux下所有的普通文件都會硬鏈接到某個inode。也就是說每多創建一個硬鏈接就會多一個文件指向同一個inode。其實,這對系統備份是很有作用的^_^。
三、引用鏈接
cp –reflink name1 name4
說實話,這個筆者也沒怎麼用過,和硬鏈接相似。只是占用的存儲空間更少。