關於 Linux 下的檔案硬鏈結,檔案軟鏈結

2021-06-29 10:39:58 字數 1615 閱讀 3763

《原作:cnmm22:>

這是乙個linux 跟windows 的區別,以後有空我會介紹一些這方面的區別……&

在linux 有個鏈結的功能

,命令是 ln,可以

讓兩個檔案或目錄(目錄只能是軟連線)產生關聯,或產生乙個關聯檔案或目錄。

【所謂硬鏈結】

比如 ln a.php b    -

把 a.php 鏈結到 b(可以理解為把a 複製乙份到b,但其實不是複製,是建了乙個別名檔案),這個時候 vi 改 a, 再more b 會發現 b 也跟著變了。實際上 改他們其中任意乙個另乙個都會變。但 rm 刪除a ,b 卻還在,這其中是因為:建立鏈結雖然不會完全複製乙個檔案,但會建立乙個指向同乙個檔案的間接指標,所以刪除其中乙個,

檔案並沒有完全被刪除,因為它仍然以其它的名字存在。

【所謂軟鏈結】ln後 -s

,如 ln -s a.php b     -其實這就是給a 建立乙個快捷方式 b,-s s是symbol 的意思,這時rm a,雖然b還在,但也失效無法開啟,需要手動刪除b這個空指向(這是硬鏈結和軟鏈結最直觀的區別)。

另外,建立硬鏈結時,鏈結檔案和被鏈結檔案必須位於同乙個檔案系統中(相當於要位於

同乙個分割槽),

並且 硬鏈結

不能指向目錄

。而對軟連線,就是所謂符號鏈結,則可以跨越檔案系統,可以軟鏈結目錄。

如果你用ls察看乙個目錄時,發現有的檔案後面有乙個@的符號,那就是乙個用ln命令生成的檔案,用ls –l命令去察看,就可以看到顯示link的路徑。

最後引用一些

示例——

ln     -f chap1     intro

這會將 chap1 鏈結到新的名稱, intro。如果 intro 不存在,那麼會建立該檔名。如果 intro 已經存在了,那麼這個檔案會被替換為指向 chap1的乙個鏈結。然後 chap1 和 intro 檔名會指向同乙個檔案。對其中任何乙個的更改都會出現在另乙個中。如果乙個檔名被 rm 命令刪除,那麼該檔案並沒有完全被刪除,因為它仍然以其它的名字存在。

ln     index     manual

這會將 index 鏈結到新的名稱,manual/index。

注意:在示例 1 中的 intro 是乙個檔案的名稱;在示例 2 中的 manual 是乙個已經存在的目錄。

ln     chap2     jim/chap3     /home/manual

這會將 chap2 鏈結到新的名稱 /home/manual/chap2;將 jim/chap3 鏈結到新的名稱 /home/manual/chap3。

三、如果想要在 ln 命令中使用模式匹配字元,請輸入: 

n     manual/* .

這會將 manual 目錄中的所有檔案鏈結到當前目錄中, . (點),給他們在 manual 目錄中同樣的名稱。

注意: 必須在星號和句點之間輸入乙個空格。

ln -s /tmp/toc toc

這會在當前的目錄中建立符號鏈結 toc。 toc 檔案指向 /tmp/toc 檔案。如果 /tmp/toc 檔案已經存在了,那麼 cat toc 命令可以列出其內容。

五、如果想要在不指明 targetfile 引數的情況下得到相同的結果,請輸入:

、ln -s /tmp/toc

Linux下的硬鏈結和符號鏈結

硬鏈結和符號鏈結 軟鏈結 硬鏈結只能引用同一檔案系統中的檔案。它引用的是檔案在檔案系統中的物理索引 也稱為 inode 當您移動或刪除原始檔案時,硬鏈結不會被破壞,因為它所引用的是檔案的物理資料而不是檔案在檔案結構中的位置。硬鏈結的檔案不需要使用者有訪問原始檔案的許可權,也不會顯示原始檔案的位置,這...

linux 下的硬鏈結與軟鏈結

在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案都有乙個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複製到記憶體,從而實現檔案的快速訪問。linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic l...

Linux下的硬鏈結和軟鏈結

乙個檔案有檔名和資料,而資料在linux上又被分成了兩個部分,分別是使用者資料和元資料 使用者資料 即檔案資料塊 block 是記錄檔案真實內容的地方。元資料 metadata 記錄檔案的附加屬性 檔案大小,建立時間,所有者資訊等等 在檔案中的元資料中,有一項被稱為inode號,在linux系統下,...