那些我們一起搞不太懂Linux_軟硬連結概念語法的日子
在 Linux 及其他 Unix Like 作業系統中
假若我們要建立連結
可以用 ln 這個指令
先來解釋一下 連結 這個詞的含意!!!
打個比方其實很像Windows 的檔案捷徑(快捷)
也可以說是 檔案的 分身(內容本質相同,看起來也相同)
在Linux檔案連結中
常用語法 ln
ln 建立的連結分兩種:
(1)硬連結(hard link)
(2)軟連結(symbolic link) / 符號連結
預設 ln 會使用 hard link。
(1)Hard Link
是資料的真正連結(實體檔案實際所在目錄)
主要特色:
1.不同分割區無法做硬連結
2.不能針對目錄作硬連結
3.目標檔 與 硬連結檔 的 inode number 相同
4.目標檔 與 硬連結檔 的 檔案屬性 相同
5.目標檔 或 軟連結檔 修改內容後,另一個檔案的內容也會跟著更改(同步更新)
6.任何一個檔案刪除後,另一個檔案仍保有元內容
一般在Linux系統下做檔案操作時
會有兩個細部過程
之後若再生一個檔案取名為 novel2.doc 並建一個硬連結
就會有相同的Inode標號 找尋到一樣對應的Inode表
此時存放數量就會更新成兩個 Inode更新檔案個數
(2)Symbolic link
能突破Hard Link一些做不到的先天限制
比如跨檔案系統、或者是跨硬碟等,應用上比較靈活
主要特色:
1.不同分割區可做軟連結
2.可以針對目錄作軟連結
3.目標檔 與 軟連結檔 的 inode number 不同
4.目標檔 與 軟連結檔 的 檔案屬性 不同
5.目標檔 或 軟連結檔 修改內容後,另一個檔案的內容也會跟著更改
6.目標檔 刪除後,軟連結檔 就為損毀的檔案
新增一個 novel2.doc 依照相同流程指向至Data區塊
用生活化的例子理解軟硬連結的概念
硬連結
可以具體一點來想成是統領百貨大樓 / 遠百 /SOGO等等 其他不同百貨公司
(它們基本上都是可以讓顧客進入到同一棟大樓)
彼此會讓同一棟百貨大樓的顧客群湧入
可以只留一扇門就能給顧客進來
這三扇門都對應一樣的百貨公司行號(相同的一棟大樓)
軟連結
可以具體看成是到達這些門的不同捷徑
比方說遊戲傳送點、任意門等等之類的
基本上只要對方大樓的管理員/守門員/警衛允許並告知
門有打開(有營業)
就能透過這些捷徑前往
如果門沒開,有這些捷徑也徒勞
ln 的語法
ln [OPTION]… TARGET […] [LINKNAME […]]
ln 常用參數
-s, –symbolic: 建立 symbolic link
-f, –force: 如果目標檔案已經存在,不會提出詢問,而會直接強制覆蓋檔案
-i, –interactive: 如果目標檔案已經存在,會先提出詢問,不會直接強制覆蓋檔案
-n, –no-clobber: 不會覆蓋任何檔案
以下我拿 樹梅派上的 Raspbian 系統環境做一個語法演示
針對 /etc/host.conf 做兩種連結 語法示例
首先是軟(符號)連結
ln -s 檔案及其所在地
硬連結
ln 檔案及其所在地
參考文獻link:
http://www.techbang.com/posts/12538-hard-links-soft-links-archives-does-not-fashu
http://www.test104.com/tw/board/topic_12473.html
https://www.phpini.com/linux/ln-create-link-command
假若我們要建立連結
可以用 ln 這個指令
先來解釋一下 連結 這個詞的含意!!!
打個比方其實很像Windows 的檔案捷徑(快捷)
也可以說是 檔案的 分身(內容本質相同,看起來也相同)
在Linux檔案連結中
常用語法 ln
ln 建立的連結分兩種:
(1)硬連結(hard link)
(2)軟連結(symbolic link) / 符號連結
預設 ln 會使用 hard link。
(1)Hard Link
是資料的真正連結(實體檔案實際所在目錄)
主要特色:
1.不同分割區無法做硬連結
2.不能針對目錄作硬連結
3.目標檔 與 硬連結檔 的 inode number 相同
4.目標檔 與 硬連結檔 的 檔案屬性 相同
5.目標檔 或 軟連結檔 修改內容後,另一個檔案的內容也會跟著更改(同步更新)
6.任何一個檔案刪除後,另一個檔案仍保有元內容
一般在Linux系統下做檔案操作時
會有兩個細部過程
之後若再生一個檔案取名為 novel2.doc 並建一個硬連結
就會有相同的Inode標號 找尋到一樣對應的Inode表
此時存放數量就會更新成兩個 Inode更新檔案個數
(2)Symbolic link
能突破Hard Link一些做不到的先天限制
比如跨檔案系統、或者是跨硬碟等,應用上比較靈活
主要特色:
1.不同分割區可做軟連結
2.可以針對目錄作軟連結
3.目標檔 與 軟連結檔 的 inode number 不同
4.目標檔 與 軟連結檔 的 檔案屬性 不同
5.目標檔 或 軟連結檔 修改內容後,另一個檔案的內容也會跟著更改
6.目標檔 刪除後,軟連結檔 就為損毀的檔案
新增一個 novel2.doc 依照相同流程指向至Data區塊
十分特別的一點在於
連結(捷徑)檔案內容
存放的其實為連結指向的檔案名稱(也包括位於的目錄路徑)
連結大小也是藉由此字串共幾字元來判定共多少byte大小
(一個char一個byte)
用生活化的例子理解軟硬連結的概念
硬連結
可以具體一點來想成是統領百貨大樓 / 遠百 /SOGO等等 其他不同百貨公司
這些特定的公司百貨大樓的
正門、側門、後門 (都對應同一個百貨公司的公司行號)(它們基本上都是可以讓顧客進入到同一棟大樓)
彼此會讓同一棟百貨大樓的顧客群湧入
可以只留一扇門就能給顧客進來
這三扇門都對應一樣的百貨公司行號(相同的一棟大樓)
軟連結
可以具體看成是到達這些門的不同捷徑
比方說遊戲傳送點、任意門等等之類的
基本上只要對方大樓的管理員/守門員/警衛允許並告知
門有打開(有營業)
就能透過這些捷徑前往
如果門沒開,有這些捷徑也徒勞
ln 的語法
ln [OPTION]… TARGET […] [LINKNAME […]]
ln 常用參數
-s, –symbolic: 建立 symbolic link
-f, –force: 如果目標檔案已經存在,不會提出詢問,而會直接強制覆蓋檔案
-i, –interactive: 如果目標檔案已經存在,會先提出詢問,不會直接強制覆蓋檔案
-n, –no-clobber: 不會覆蓋任何檔案
以下我拿 樹梅派上的 Raspbian 系統環境做一個語法演示
針對 /etc/host.conf 做兩種連結 語法示例
首先是軟(符號)連結
ln -s 檔案及其所在地
硬連結
ln 檔案及其所在地
參考文獻link:
http://www.techbang.com/posts/12538-hard-links-soft-links-archives-does-not-fashu
http://www.test104.com/tw/board/topic_12473.html
https://www.phpini.com/linux/ln-create-link-command
留言
張貼留言