歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Unix中硬連接與文件快捷方式的差異分析及應用

Unix中硬連接與文件快捷方式的差異分析及應用

日期:2017/2/28 16:47:54   编辑:Linux教程

熟悉Windows操作系統的用戶對於它的快捷方式一定印象深刻吧?通過快捷方式,可以把本來保存在D盤等地方的文件或者目錄定位到桌面,方便用戶進行訪問。其實在Linux系統中也有類似的功能,不過其從功能上來說要比快捷方式略勝一籌。

  一、硬連接的原理。

  在inode節點中存儲著文件的相關屬性,如權限等等。但是在這個節點中卻沒有存儲文件的名字。這個特性給與了用戶很多的想象力。如如此的話,一個文件只有一個節點,但是卻可以有多個文件名字。當一個文件有多個文件名字時,在Unix系統中就叫做文件有多個連接。用戶可以通過文件的任何一個連接訪問這個文件。雖然他們有不同的文件名字,但是他們卻是同一個文件,因為他們文件的inode號是同一個。通常情況下,只要inode節點數相同,就是同一個文件。雖然有多個文件名字,但是在硬盤上只有一個文件副本。從嚴格意義上來說,並不存在節點數相同的多個文件,他們只是一個文件,只是由不同的名字而已。就像一個人,其可能有多個綽號,但是這個人只有獨一無二的一個。即使通過克隆等技術再生成一個人,那麼他們是兩個不相同的人,而不是一個人。了解這個內容對於認識硬連接與快捷方式的差異具有很大的作用。

  二、硬連接與快捷方式的差異。

  Unix系統中地硬連接與快捷方式有比較大的差異。簡單的來說,Unix操作系統中的硬連接其實就是一個文件不同的別名而已。而微軟操作系統中的快捷方式則是兩個不同的問題。如下圖所示:

  文件doc1與文件doc2他們由於節點數是相同的,所以說他們是同一個文件。文件doc2是文件doc1的一個硬連接。即這個文件具有兩個綽號,對其中的一個綽號(即鏈接)的修改會影響到另外一個綽號。通過ls等命令可以查詢到這兩個綽號代表的文件可能會存儲在兩個不同的目錄中,但是通過查詢他們的節點數卻可以發現他們屬於同一個文件。

  但是快捷方式則不同。如上圖的右邊所示,文件doc2是文件doc1的一個快捷方式。其實此時他們是兩個文件。文件doc1保存著文件本身的內容,而文件doc2則保存著指向文件doc1的一個路徑。也就是說,這兩個名字所對應的文件是不同的。或者說,這兩個文件名字代表著不同的文件。當用戶打開doc2文件時,系統首先打開的就是doc2這個文件。然後再從這個文件中讀取文件doc1的路徑,再把文件doc1打開。由於這個過程對於用戶來說是透明的,故用戶看起來他們好像代表著同一個文件。其實是不同的。只需要把文件doc1換一個位置,那麼當打開doc2文件時系統就會提示找不到文件doc1的錯誤信息。從這裡就可以判斷出,文件doc2只保存了文件doc1的一個連接方式,而不是文件doc1本身的內容。

  以上這個就是硬連接與快捷方式的主要差異。這個差異也決定了硬連接在某些場合有其獨到的用處。

Copyright © Linux教程網 All Rights Reserved