1. 程式人生 > >linux學習之連結檔案

linux學習之連結檔案

連結檔案

linux系統,為每個新建檔案都分配一個索引節點(Inode),每個檔案的indoe號唯一,檔案屬性儲存在inode中,在訪問該檔案時,該檔案的inode號會放到記憶體中,以實現快速訪問。
linux的連結檔案相當於windows系統中的快捷方式,Linux的連結檔案分為兩種,硬連結(hard link)和軟連結(soft link),軟連結又稱符號連結(symbolic link)。
硬連結
硬連結就是同一個檔案使用了多個別名(他們有共同的 inode)。連結檔案和原檔案實際上是一個檔案。
當硬連結刪除原檔案時,系統呼叫檢查inode link count的數值,如果他大於等於1,那麼inode不會被回收,因此檔案的內容不會被刪除,相當於刪除了一個索引。檔案的inode號可以通過命令(ls-i)檢視。
硬連結不可以跨檔案系統,軟連線可以跨檔案系統。
硬連結就是一個指標,指向文建索引節點,系統不為它分配新的inode。
硬連結的建立用ln:

ln oldfile  newfile
ln [option] oldfile  newfile
ln [option] oldfile-list newfile

第二種是為oldfile目錄下的所有檔案都建立一個同名的硬連結,[optiong]的常用選項是-f,無論”newfile”存在與否,都建立連結。-n 如果”newfile”已存在,就不建立連結。

不同目錄,但在同一檔案系統下建立hard link:
設file1,file2在目錄 ~/temp/d1中,(1)在~/temp/d2中給file2 創立硬連結 file2hard
(2)將d1目錄中所有檔案,在目錄d2中建立硬連結

cd ./temp/d1
ln file2 ./temp/d2/filehard (1)

ln ./temp/d1/* ./temp/d2

如何判斷硬連結和原始檔是同一檔案?
建立連結後(1)file1和file1hard的連結數目都變為2;(2) file1和file1hard在inode號是一樣的(3) file1和file1hard顯示的檔案大小也是一樣。可見進行了ln命令的操作結果:file1和file1hard是同一個檔案的兩個名字,它們具有同樣的索引節點號和檔案屬性,建立檔案file1的硬連結,就是為file1的檔案索引節點在當前目錄上建立一個新指標。
無

符號連結
軟連結是對一個檔案的間接指標。軟連線的檔案使用者資料塊中存放的內容是另一個檔案的路徑名指向。軟連線就是一個普通檔案,它的資料塊內容有點特殊。
軟連線可對檔案或目錄建立。建立命令(ln -s)