linux 鏈結分兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic link)。
情況下,ln命令產生硬鏈結。
硬連線
硬連線指通過索引節點來進行連線。在 linux 的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode index)。在 linux 中,多個檔名指向同一索引節點是存在的。比如:a 是 b 的硬鏈結(a 和 b 都是檔名),則 a 的目錄項中的 inode 節點號與 b 的目錄項中的 inode 節點號相同,即乙個 inode 節點對應兩個不同的檔名,兩個檔名指向同乙個檔案,a 和 b 對檔案系統來說是完全平等的。刪除其中任何乙個都不會影響另外乙個的訪問。
硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。
軟連線
另外一種連線稱之為符號連線(symbolic link),也叫軟連線。軟鏈結檔案有類似於 windows 的快捷方式。它實際上是乙個特殊的檔案。在符號連線中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。比如:a 是 b 的軟鏈結(a 和 b 都是檔名),a 的目錄項中的 inode 節點號與 b 的目錄項中的 inode 節點號不相同,a 和 b 指向的是兩個不同的 inode,繼而指向兩塊不同的資料塊。但是 a 的資料塊中存放的只是 b 的路徑名(可以根據這個找到 b 的目錄項)。a 和 b 之間是「主從」關係,如果 b 被刪除了,a 仍然存在(因為兩個是不同的檔案),但指向的是乙個無效的鏈結。
測試:
從上面的結果中可以看出,硬連線檔案 f2 與原檔案 f1 的 inode 節點相同,均為 923467,然而符號連線檔案的 inode 節點不同。
現在我們使用echo命令輸入一些內容到f1,結果如下
發現f2依舊還能顯示內容,f3有無指向檔案被刪,因此無效,實際上還能得出如下內容:
echo 輸入字串
ln 建立硬鏈結
ln -s 建立軟鏈結
Linux學習筆記3 Linux檔案許可權
linux具有多人多任務環境,為了讓各個使用者具有保密級的檔案資料,因此檔案許可權管理就變得很重要。linux一般講檔案可讀寫的身份分為三個類別,擁有者 owner 所屬群組 group 其他人 others 三種身份各有讀 read 寫 write 執行 execute 等許可權。檔案擁有者 使用...
Linu學習3 Linux高階命令
一 find find 查詢檔案 find 查詢檔案 注意如果沒有指定目錄,用 或者空格代替,則表示查詢當前目錄的檔案。find 可以查詢最近一段時間有改動的檔案。二 gerp 查詢字串命令 複製檔案 cp 檔案位置及檔案 新檔案位置 可用 代替後者為此資料夾。grep 目的 使用grep命令來查詢...
Linux學習之路3 linux的檔案許可權
1 使用者和使用者組 每個使用者必須屬於乙個使用者組,當申請乙個使用者的時候,系統就會自動生成乙個同名的使用者組。再將使用者加入使用者組中,這個使用者組是該使用者的私人組。系統可以為乙個組設定許可權,這樣的話就可以對使用者組中的使用者統一分配許可權,例如公司為財務部分配許可權,而不需要為財務部的每乙...