詳解Linux系統中軟連線和硬連結的區別與聯絡
Linux 系統中有軟連線和硬連結兩種特殊的“檔案”。
其中軟連線實際上可以看作是Windows中的快捷方式,而硬連結則可以看作類似於一個檔案的 “指標”(也不完全相同) 。
建立方法都很簡單:
1. 軟連線(符號連結) ln -s source target
2. 硬連結 ln source target
原理:
要解釋清楚兩者的區別和聯絡需要先說清楚 linux 檔案系統中的 inode 這個東西。
簡單的說這個inode即使檔案在一個檔案系統中的唯一標識,需要訪問這個檔案的時候必須先找到並讀取這個檔案的 inode。 Inode 裡面儲存了檔案的很多重要引數,其中唯一標識稱作 inumber, 其他資訊還有建立時間(ctime)、修改時間(mtime) 、檔案大小、屬主、歸屬的使用者組、讀寫許可權等資訊。
當劃分磁碟分割槽並格式化的時候,整個分割槽會被劃分為兩個部分,即inode區和資料區域
通常會根據分割槽的用途來安排inode的數量(這是另外一個話題了),比如檔案數量很多而檔案都很小,則需要調增inode較大,以便能索引全部檔案。否則將會出現這個分割槽並沒有寫滿而無法寫入任何檔案的情況。
檢視 inodes 使用情況的命令 df -i :
知道了inode的作用就不難理解軟硬連結的區別了。
- 軟連線相當於快捷方式,如果開啟並修改軟連線,相應的檔案也會隨之改變。但是如果刪除軟連線,原始檔並不會受到影響。
- 硬連結有點像引用和指標的結合,當開啟和修改它時,相應的檔案隨之改變,但是所有這個檔案的硬連結的內容也隨之改變,這是因為所有的硬連結都擁有唯一的一個 inode 號,他們指向的是同一檔案。
- 軟連線可以跨檔案系統建立,也就是可以在某個分割槽中建立到另外一個分割槽的軟連線
- 硬連結則只能在本檔案系統中使用(想想為什麼?),其實原理很簡單,因為 inode 是這個檔案在當前分割槽中的索引值,是相對於這個分割槽的,當然不能跨越檔案系統了。
- 最後一個區別是軟連線可以連線任何檔案或者資料夾,而硬連結則只能在檔案之間建立
水平有限,如有什麼問題,請留言指正!
相關推薦
詳解Linux系統中軟連線和硬連結的區別與聯絡
Linux 系統中有軟連線和硬連結兩種特殊的“檔案”。 其中軟連線實際上可以看作是Windows中的快捷方式,而硬連結則可以看作類似於一個檔案的 “指標”(也不完全相同) 。 建立方法都很簡單: 1. 軟連線(符號連結) ln -s source target 2
Linux中軟連線和硬連結的區別
什麼是連結? 連結簡單說實際上是一種檔案共享的方式,是 POSIX 中的概念,主流檔案系統都支援連結檔案。 它是用來幹什麼的? 你可以將連結簡單地理解為 Windows 中常見的快捷方式(或是 OS X 中的替身),Linux 中常用它來解決一些庫版本的問題,通常也
win7下ntfs檔案系統的軟連線和硬連結
Windows 7下的mklink命令通過指定引數可以建立出不同形式的檔案或目錄連結,分為硬連結(hard link)、符號連結(symbolic link)和軟連結(目錄聯接)(junction)三種。 1.符號連結(symbolic link) 相當於快捷方式 建立
詳解雲端計算、大資料和人工智慧的區別與聯絡
今天跟大家講講雲端計算、大資料和人工智慧。為什麼講這三個東西呢?因為這三個東西現在非常火,並且它
linux 軟連線和硬連結
1.軟連結: 建立軟連結:ln -s /usr/local/node-v4.2.6-linux-x86/bin/node /usr/local/bin/node 解釋:將/usr/local/node-v4.2.6-linux-x86/bin/下的node對
Linux軟連線和硬連結
Linux連結概念 連結——是一種在共享檔案和訪問它的使用者的若干目錄項之間建立聯絡的一種方法。 Linux連結分兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生硬連結。 硬連結
Linux軟連線和硬連結———最精闢的分析
1.Linux連結概念 Linux連結分兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生硬連結。 【硬連線】 硬連線指通過索引節點來進行連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什
linux 軟連線和硬連結的區別
4點不同 : (1)軟連線可以 跨檔案系統 ,硬連線不可以 。實踐的方法就是用共享檔案把windows下的 aa.txt文字文件連線到linux下/root目錄 下 bb,cc . ln -s aa.txt /root/bb 連線成功 。ln aa.txt /root/bb
軟連線和硬連結的區別是什麼?
軟連線和硬連結的區別: 兩個檔案若互為對方的硬連結,則這兩個檔案指向同一個 inode,如果刪除了其中一個,對另外一個沒有影響。 每增加一個硬連結,inode 節點上的連結數增加一,每刪除一個硬連結,inode 節點上的連結數減一,直到為 0,inode 節點和對應的資
理解spring中的BeanFactory和FactoryBean的區別與聯絡
首先,這倆都是個介面… 實現 BeanFactory 介面的類表明此類事一個工廠,作用就是配置、新建、管理 各種Bean。 而 實現 FactoryBean 的類表明此類也是一個Bean,型別為工廠Bean(Spring中共有兩種bean,一種為普通bean
Linux系統中KafKa安裝和使用方法 java客戶端連線kafka
kafka linux單機安裝1 下載並安裝kafka# tar zxvf kafka_2.12-1.1.0tgz # mv kafka_2.12-1.1.0 /usr/local/kafka # cd /usr/local/kafka2 啟動服務執行kafka需要使用Zo
詳解原型鏈中的prototype和 __proto__
前言 本文主要是徹底講明白prototype和__proto__ 是幹嘛的,相信很多同學也跟我一樣,傻傻的分不清楚兩者應該如何使用?、在原型鏈中到底起到什麼作用?、 在繼承中起到什麼作用?、javascript為什麼會設計出這兩個屬性?等一系列問題,網上查遍許多資料,看的也是雲裡霧裡一頭霧
Java架構-詳解分散式系統本質:“分治”和“冗餘”
站在全域性角度看,分散式系統的本質是什麼?其實說白了,就是兩點:“分治”和“冗餘”。 分治和冗餘使得分散式系統具備了核心價值,那麼它的價值是什麼? 分散式系統的價值 談到分散式系統的價值,可能就得從 1953 年說起了。在這一年,埃布·格羅希(Herb Grosch)提
linux系統中docker服務和普通服務對外訪問埠不通的問題
linux系統中docker服務和普通服務對外訪問埠不通的問題 前一段時間,在一個新的centos 7.4 伺服器上執行專案,共有四個專案,因為特殊原因,兩個是通過docker 執行,另外兩個是通過nginx和tomcat 執行。 當執行起來以後,發現docker 執行的那兩
一文詳解Linux系統常用監控工具
本文共 1329字,閱讀大約需要 3分鐘 ! 概 述 本文主要記錄一下 Linux系統上一些常用的系統監控工具,非常好用。正所謂磨刀不誤砍柴工,花點時間總結一下是值得的! 本文內容腦圖如下: top 命令 top 命令我想大家都挺熟悉吧!Linux 下的 t
詳解Linux bash中的變數
在Linux系統中進行日常運維或者是編寫指令碼時,變數是再熟悉不過的了,但這些變數都有哪些型別,具體的用法又有哪些差異呢?本文整理分享給大家: 一、bash變數型別: 本地變數 區域性變數 環境變數 位置變數 特殊變數(內建) 二、本地變數: varname=value:作用域為整個bash程序可以
推薦系統遇上深度學習(十六)--詳解推薦系統中的常用評測指標
最近閱讀論文的過程中,發現推薦系統中的評價指標真的是五花八門,今天我們就來系統的總結一下,這些指標有的適用於二分類問題,有的適用於對推薦列表topk的評價。1、精確率、召回率、F1值我們首先來看一下混淆矩陣,對於二分類問題,真實的樣本標籤有兩類,我們學習器預測的類別有兩類,那麼根據二者的類別組合可以劃分為四組
詳解C語言中的 %*s 和 %.*s
%*s:取決於在scanf中使用還是在printf中使用。 1.在scanf中使用,則添加了*的部分會被忽略,不會被引數獲取。 例如: int a,b; char b[10]; scanf("%d%*s",&a,b); //輸入為:12 abc那麼12將會讀取到變數a
Linux系統中安裝python3和pip及相關配置
linux中安裝python3 前言 一般linux系統都預設安裝了python2,儘量不要管它,使用python3執行python指令碼就好,因為linux系統費裡有很多程式依賴目前的python2環境,比如ubuntu裡的軟體中心和yum!!!!! 不要動現有的python2
詳解Windows系統中如何釋放C盤空間
現在的軟體大部分採用標準的Windows安裝模式,使用者只需雙擊Setup.exe檔案即可輕鬆安裝。不過,這樣的安裝方式也有一個弊病:很多程式在預設情況下都會安裝到作業系統所在分割槽(絕大多數使用者選擇了C盤),因此過一段時間後,C盤的可用空間必然越來越小。也許在不知不覺中,