軟鏈接和硬鏈接到底有啥作用和區別


前言:在網上搜索了好久,看了很多博客,某度知道等等。關於軟硬鏈接的解釋都太模糊,還有什么i節點,跨分區根本弄不明白,在查閱了書籍和詢問老師后決定自己寫一篇簡單的博文,然初學者都能夠明白的博文。

一 建立軟鏈接和硬鏈接的語法
軟鏈接:ln -s 源文件 目標文件
硬鏈接:ln 源文件 目標文件
源文件:即你要對誰建立鏈接

二 什么是軟鏈接和硬鏈接
1,軟鏈接可以理解成快捷方式。它和windows下的快捷方式的作用是一樣的。
2,硬鏈接等於cp -p 加 同步更新。

為了方便說明,我在根分區(/)下建立test文件夾,然后新建了一個jys文件

 


建立軟鏈接和硬鏈接:

 


區別: 軟鏈接文件的大小和創建時間和源文件不同。軟鏈接文件只是維持了從軟鏈接到源文件的指向關系(從jys.soft->jys可以看出),不是源文件的內容,大小不一樣容易理解。
硬鏈接文件和源文件的大小和創建時間一樣。硬鏈接文件的內容和源文件的內容一模一樣,相當於copy了一份。


但是簡單的copy的文件創建文件的時間應該是復制文件時的時間,肯定不會像硬鏈接那樣和創建源文件的時間相同。你想的沒錯。

 

但是只要加一個選項-p,時間就一樣了


那么cp -p的文件是不是就相當於硬鏈接了呢?其實不然,對於源文件的內容有修改,硬鏈接文件會同步更新修改,始終保持和源文件的內容相同,而復制的文件則不可能做到這一點。


所以,硬鏈接等於cp -p加同步更新。
軟鏈接像快捷方式,方便我們打開源文件,這一點在windows中深有體會,那硬鏈接有哪些應用呢?
在多用戶的操作系統里,你寫一個腳本,程序等,沒有完成,保存后等下次有時間繼續寫,但是其他用戶有可能將你未寫完的東西當成垃圾清理掉,這時,你對你的程序,腳本等做一個硬鏈接,利用硬鏈接的同步更新,就可以方式,別人誤刪你的源文件了。

三,刪除源文件多軟鏈接和硬鏈接的影響

查看軟鏈接文件,查看的文件不存在。和windows一樣,刪除源文件,快捷方式也用不了。但是刪除源文件,為什么硬鏈接文件還可以查看呢?
這里要簡單說下i節點了。i節點是文件和目錄的唯一標識,每個文件和目錄必有i節點,不然操作系統就無法識別該文件或系統,就像沒有上戶口的黑戶。linux操作系統是不識別些字母的,像這些jys ,jys.hard操作系統根本不知道是什么玩意。

 

可以看出硬鏈接文件和源文件i節點號相同,並且一個i節點可以對應多個文件名。

 

如圖,刪除了jys,只是刪除了從920586到jys的映射關系,不影響它和jys.hard的映射關系。此圖也解釋了硬鏈接的同步更新,對源文件修改,操作系統只認i節點,於是操作系統就將修改內容寫進所有i節點相同名字不同的

文件。

寫到這里我突發奇想,如果對硬鏈接文件進行修改那么源文件會不會同步更新呢?留給讀者自己試驗吧!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM