您的位置:首頁>科技>正文

在Linux中硬連結與符號連結(軟連結)的區別是什麼?

小白電腦課堂開課啦!遊戲團戰就死機, 多半是廢了。 大家好我是小白。 在Linux中, 我們經常訪問多級目錄下的檔時, 需要在命令列輸入很長的路徑。 如果每次都是這樣, 簡直是麻煩死了。 這時我們就會想到像windows一樣, 可以創建一個連結, 這樣不是方便很多嗎。 那麼今天小白就和大家說說Linux中硬連結和軟連結的區別。

Linux具有為一個檔起多個名字的功能, 稱為連結。 被連結的檔可以存放在相同的目錄下, 但是必須有不同的檔案名, 而不用 在硬碟上為同樣的資料重複備份。 另外, 被連結的檔也可以有相同的檔案名, 但是存放在不同的目錄下, 這樣只要對一個目錄下 的該檔進行修改, 就可以完成對所有目錄下同名連結檔的修改。 對於某個檔的各連結檔, 我們可以給它們指定不同的存取 許可權, 以控制對資訊的共用和增強安全性。

一、硬連結

建立硬連結時,

在另外的目錄或本目錄中增加目的檔案的一個目錄項, 這樣, 一個檔就登記在多個目錄中。 如圖所示的m2.c文 件就在目錄mub1和liu中都建立了目錄項。 創建硬連結後, 己經存在的檔的I節點號(Inode)會被多個目錄檔項使用。 一個檔的硬連結數可以在目錄的長清單格式的 第二列中看到, 無額外連結的檔的連結數為l。 在預設情況下, ln命令創建硬連結。 ln命令會增加連結數, rm命令會減少連結數。 一個檔除非連結數為0, 否則不會從檔案系統 中被物理地刪除。

對硬連結有如下限制:

1、不能對目錄檔做硬連結。

2、不能在不同的檔案系統之間做硬連結。 就是說, 連結檔和被連結檔必須位於同一個檔案系統中。

二、符號連結(軟連結)

符號連結也稱為軟連結,

是將一個路徑名連結到一個檔。 這些檔是一種特別類型的檔。 事實上, 它只是一個文字檔(如圖 中的abc檔), 其中包含它提供連結的另一個檔的路徑名, 如圖中虛線箭頭所示。 另一個檔是實際包含所有資料的檔。 所 有讀、寫檔內容的命令被用於符號連結時, 將沿著連結方向前進來訪問實際的檔。

圖片來自man.linuxde.net/ln

與硬連結不同的是, 符號連結確實是一個新檔, 當然它具有不同的I節點號;而硬連結並沒有建立新檔。 符號連結沒有硬連結的限制, 可以對目錄檔做符號連結, 也可以在不同檔案系統之間做符號連結。 用 ln ­-s 命令建立符號連結時, 原始檔案最好用絕對路徑名。 這樣可以在任何工作目錄下進行符號連結。 而當原始檔案用相對路徑 時, 如果當前的工作路徑與要創建的符號連結檔所在路徑不同, 就不能進行連結。

符號連結保持了連結與原始檔案或目錄之間的區別:

1、 刪除原始檔案或目錄, 只刪除了資料, 不會刪除連結。 一旦以同樣檔案名創建了原始檔案, 連結將繼續指向該檔的新資料。

2、在目錄長清單中, 符號連結作為一種特殊的檔案類型顯示出來, 其第一個字母是l。

3、符號連結的大小是其連結檔的路徑名中的位元組數。

4、 當用 ln ­-s 命令列出檔時, 可以看到符號連結名後有一個箭頭指向原始檔案或目錄, 例如 lrwxrwxrwx … 14 jun 20 10:20 /etc/motd­>/original_file 其中, 表示“檔大小”的數字“14”恰好說明原始檔案名 original_file 由14個字元構成。

本文由小白電腦課堂編寫, 原文位址:man.linuxde.net/ln

告別電腦小白就從小白電腦課堂開始!

Next Article
喜欢就按个赞吧!!!
点击关闭提示