linux的硬鏈接和軟連接的區(qū)別及說明
linux的硬鏈接和軟連接的區(qū)別
Linux中有兩種鏈接文件
1)軟鏈接(符號鏈接symbol),等同于Windows中快捷方式
ln -s 源文件名 符號鏈接文件名,源文件名和符號鏈接文件名是主從關系,源被刪了,符號鏈接也就失效了
eg: ln -s src.c linker.c (linker.c就是src.c的一個符號鏈接文件);
2)硬鏈接,ln 源文件名 符號鏈接文件名,源文件名和符號鏈接文件名是并列關系,源被刪了,符號鏈接依然有效。硬鏈接實際上和源文件在硬盤中是同一個東西,效果類似于硬盤上的一個文件,在文件系統(tǒng)上,在我們看來有好多個文件一樣。每次刪除一個文件時,只要他還有其他的硬鏈接存在,這個文件就不會被真正刪除。只有等所有的鏈接文件都刪除掉了,這個文件才會被真正從硬盤上刪除
軟鏈接與硬鏈接的區(qū)別(通俗):
硬鏈接可認為是一個文件擁有兩個文件名;
而軟鏈接則是系統(tǒng)新建一個鏈接文件,此文件指向其所要指的文件
若源文件改名,則軟連接不可用(找不到源文件);硬鏈接可正常訪問到源文件;
修改軟連接、硬鏈接和源文件,訪問三者都是同步變化的。
軟鏈接
首先,我建立link_test.txt的測試文件,建立軟連接指向測試文件
ln -s 源文件 軟連接
查看軟連接的內(nèi)容和源文件內(nèi)容一樣,接著編輯了軟連接后,查看軟連接和原測試文件
說明編輯軟連接就是編輯原文件。測試刪除軟連接后原文件正常,刪除源文件后軟連接失效。
同樣,當我們修改任何一個軟鏈接文件都會使內(nèi)容發(fā)生改變,文件都保持同步變化。我們也可以看到軟鏈接只有18Kb并不會占用磁盤空間。它只是一個原文件的引用,當我們將原文件刪除以后,引用將會失效。
硬鏈接
ln 源文件 硬連接
建立硬鏈接后發(fā)現(xiàn),硬鏈接的大小和原文件一樣,并且索引節(jié)點號也一樣。當我們改變硬鏈接的文件內(nèi)容時,同樣也會改變原文件的內(nèi)容。
改變原文件內(nèi)容,軟硬鏈接內(nèi)容也都同步改變:
刪除原文件
軟連接失效,硬鏈接正常
復制軟、硬鏈接到新的文件
當我們用cp命令復制軟鏈接時,我們復制的是原文件,而不是一個軟鏈接。
復制軟、硬鏈接后,對復制文件修改,都不會影響原文件。
什么是硬鏈接和軟鏈接
硬鏈接
由于 Linux 下的文件是通過索引節(jié)點(inode)來識別文件,硬鏈接可以認為是一個指針, 指向文件索引節(jié)點的指針,系統(tǒng)并不為它重新分配 inode 。每添加一個一個硬鏈接,文件的鏈接 數(shù)就加 1 。
不足:
1. 不可以在不同文件系統(tǒng)的文件間建立鏈接;
2. 只有超級用戶才可以為目錄創(chuàng)建硬鏈接。
軟鏈接
軟鏈接克服了硬鏈接的不足,沒有任何文件系統(tǒng)的限制,任何用戶可以創(chuàng)建指向目錄的符 號鏈接。因而現(xiàn)在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網(wǎng)絡對文件 進行鏈接。
不足:
因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄 中,再訪問鏈接文件,系統(tǒng)就找不到了,而硬鏈接就沒有這個缺陷,你想怎么移就怎么移; 還有它要系統(tǒng)分配額外的空間用于建立新的索引節(jié)點和保存原文件的路徑。
實際場景下,基本是使用軟鏈接。
總結區(qū)別如下:
硬鏈接不可以跨分區(qū),軟件鏈可以跨分區(qū)。
硬鏈接指向一個 inode 節(jié)點,而軟鏈接則是創(chuàng)建一個新的 inode 節(jié)點。
刪除硬鏈接文件,不會刪除原文件,刪除軟鏈接文件,會把原文件刪除。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Python生成Shell命令,批量執(zhí)行程序代碼解析
這篇文章主要介紹了使用Python生成Shell命令,批量執(zhí)行程序代碼解析,具有一定借鑒價值,需要的朋友可以參考下2018-01-01ubuntu15.10下hadoop2.7.2的安裝與配置詳解
今天小編就為大家分享一篇關于ubuntu15.10下hadoop2.7.2的安裝與配置詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02Linux分區(qū)擴容方式(根分區(qū)擴容,SWAP分區(qū)擴容,掛載新分區(qū)為目錄)
這篇文章主要介紹了Linux分區(qū)擴容方式(根分區(qū)擴容,SWAP分區(qū)擴容,掛載新分區(qū)為目錄),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04apache設置自動將http跳轉(zhuǎn)到https的方法
客戶中心啟用了https的ssl證書,現(xiàn)在需要將原先的http直接跳轉(zhuǎn)到https上。這里為大家提供一個我經(jīng)常使用到的方法,即使用偽靜態(tài)功能2013-02-02centos7系統(tǒng)下python2與python3共存
這篇文章主要給大家介紹了關于在centos7系統(tǒng)下python2與python3共存的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用centos7爬蟲具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-08-08Linux deepin 刪除多余內(nèi)核的實現(xiàn)方法
這篇文章主要介紹了Linux deepin 刪除多余內(nèi)核的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12