《原作: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系統下,...