前言:在網上搜索了很久,看了不少博客,某度知道等等。關於軟硬連接的解釋都太模糊,還有什麼i節點,跨分區根本弄不明白,在查閱了書籍和詢問老師後決定本身寫一篇簡單的博文,然初學者都可以明白的博文。linux
一 創建軟連接和硬連接的語法
軟連接:ln -s 源文件 目標文件
硬連接:ln 源文件 目標文件
源文件:即你要對誰創建連接windows
二 什麼是軟連接和硬連接
1,軟連接能夠理解成快捷方式。它和windows下的快捷方式的做用是同樣的。
2,硬連接等於cp -p 加 同步更新。操作系統
爲了方便說明,我在根分區(/)下創建test文件夾,而後新建了一個jys文件 blog
創建軟連接和硬連接:同步
區別: 軟連接文件的大小和建立時間和源文件不一樣。軟連接文件只是維持了從軟連接到源文件的指向關係(從jys.soft->jys能夠看出),不是源文件的內容,大小不同容易理解。
硬連接文件和源文件的大小和建立時間同樣。硬連接文件的內容和源文件的內容如出一轍,至關於copy了一份。 博客
可是簡單的copy的文件建立文件的時間應該是複製文件時的時間,確定不會像硬連接那樣和建立源文件的時間相同。你想的沒錯。 test
可是隻要加一個選項-p,時間就同樣了書籍
那麼cp -p的文件是否是就至關於硬連接了呢?其實否則,對於源文件的內容有修改,硬連接文件會同步更新修改,始終保持和源文件的內容相同,而複製的文件則不可能作到這一點。
搜索
因此,硬連接等於cp -p加同步更新。
軟連接像快捷方式,方便咱們打開源文件,這一點在windows中深有體會,那硬連接有哪些應用呢?
在多用戶的操做系統裏,你寫一個腳本,程序等,沒有完成,保存後等下次有時間繼續寫,可是其餘用戶有可能將你未寫完的東西當成垃圾清理掉,這時,你對你的程序,腳本等作一個硬連接,利用硬連接的同步更新,就能夠方式,別人誤刪你的源文件了。語法
三,刪除源文件多軟連接和硬連接的影響
查看軟連接文件,查看的文件不存在。和windows同樣,刪除源文件,快捷方式也用不了。可是刪除源文件,爲何硬連接文件還能夠查看呢?
這裏要簡單說下i節點了。i節點是文件和目錄的惟一標識,每一個文件和目錄必有i節點,否則操做系統就沒法識別該文件或系統,就像沒有上戶口的黑戶。linux操做系統是不識別些字母的,像這些jys ,jys.hard操做系統根本不知道是什麼玩意。
能夠看出硬連接文件和源文件i節點號相同,而且一個i節點能夠對應多個文件名。
如圖,刪除了jys,只是刪除了從920586到jys的映射關係,不影響它和jys.hard的映射關係。此圖也解釋了硬連接的同步更新,對源文件修改,操做系統只認i節點,因而操做系統就將修改內容寫進全部i節點相同名字不一樣的
文件。
寫到這裏我突發奇想,若是對硬連接文件進行修改那麼源文件會不會同步更新呢?留給讀者本身試驗吧!