Linux中國

Linux 中軟鏈接和硬鏈接的區別

鏈接 Link 是一種快捷訪問機制,它通過一個文件指向原始文件或目錄的方式實現快捷訪問,同時還記錄了原始文件或目錄的一些信息。

鏈接允許多個不同文件對同一個文件進行引用。

什麼是軟鏈接

符號鏈接 Symbolic Link (symlink),又稱 軟鏈接 Soft Link ,是一種特殊的文件,它指向 Linux 系統上的另一個文件或目錄。

這和 Windows 系統中的快捷方式有點類似,鏈接文件中記錄的只是原始文件的路徑,並不記錄原始文件的內容。

符號鏈接通常用於對庫文件進行鏈接,也常用於鏈接日誌文件和 網路文件系統 Network File System (NFS)上共享的目錄。

什麼是硬鏈接

硬鏈接是原始文件的一個鏡像副本。創建硬鏈接後,如果把原始文件刪除,鏈接文件也不會受到影響,因為此時原始文件和鏈接文件互為鏡像副本。

為什麼要創建鏈接文件而不直接複製文件呢?

當你需要將同一個文件保存在多個不同位置,而且還要保持持續更新的時候,硬鏈接的重要性就體現出來了。

如果你只是單純把文件複製到另一個位置,那麼另一個位置的文件只會保存著複製那一刻的文件內容,後續也不會跟隨著原始文件持續更新。

而使用硬鏈接時,各個鏡像副本的文件內容都會同時更新。

軟鏈接和硬鏈接的區別

下表列出了軟鏈接和硬鏈接之間的區別。

# 軟鏈接 硬鏈接
1 軟鏈接類似於 Windows 系統中的快捷方式 硬鏈接是原始文件的一個鏡像副本
2 軟鏈接又稱符號鏈接 硬鏈接沒有別名
3 鏈接中任何一個文件發生改變,都會同步到連接中的其它文件 和軟鏈接一樣
4 軟鏈接可以跨文件系統進行創建 硬鏈接不可以跨文件系統進行創建
5 軟鏈接可以指向文件或目錄 硬鏈接只能指向文件
6 鏈接文件和原始文件之間的 inode 和文件許可權不完全一致 鏈接文件和原始文件的 inode 和文件許可權完全一致
7 鏈接文件只記錄原始文件的路徑,不記錄原始文件的內容 鏈接文件記錄了原始文件的內容
8 如果原始文件被移除,軟鏈接就會因為指向不存在的文件而失效。這被稱為「 掛起鏈接 hanging link 即使原始文件被移除,鏈接文件也不受影響。
9 通過 ln -s <原始文件> <鏈接文件> 命令創建軟鏈接 通過 ln <原始文件> <鏈接文件> 命令創建硬鏈接
10 軟鏈接文件的文件許可權中有一個特殊標記 l 硬鏈接文件沒有特殊標記
11 通過 find / -type l 命令可以查找軟鏈接文件 通過 find / -samefile <原始文件> 命令可以查找硬鏈接文件
12 通過 symlinks <目錄> 命令可以查找失效的軟鏈接 硬鏈接不存在失效鏈接

via: https://www.2daygeek.com/difference-between-soft-link-vs-hard-link-linux/

作者:Magesh Maruthamuthu 選題:lujun9972 譯者:HankChow 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國