ln -s f1 f3 #建立f1的乙個符號連線檔案f3
1.linux鏈結概念
linux鏈結分兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic link)。預設情況下,ln命令產生硬鏈結。
【硬連線】
硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode index)。在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。
【軟連線】
另外一種連線稱之為符號連線(symbolic link),也叫軟連線。軟鏈結檔案有類似於windows的快捷方式。它實際上是乙個特殊的檔案。在符號連線中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。
2.通過實驗加深理解
[oracle@linux]$ touch f1 #建立乙個測試檔案f1
[oracle@linux]$ ln f1 f2 #建立f1的乙個硬連線檔案f2
[oracle@linux]$ ln -s f1 f3 #建立f1的乙個符號連線檔案f3
[oracle@linux]$ ls -li # -i引數顯示檔案的inode節點資訊
total 0
9797648 -rw-r--r-- 2 oracle oinstall 0 apr 21 08:11 f1
9797648 -rw-r--r-- 2 oracle oinstall 0 apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 apr 21 08:11 f3 -> f1
從上面的結果中可以看出,硬連線檔案f2與原檔案f1的inode節點相同,均為9797648,然而符號連線檔案的inode節點不同。
[oracle@linux]$ echo "i am f1 file" >>f1
[oracle@linux]$ cat f1
i am f1 file
[oracle@linux]$ cat f2
i am f1 file
[oracle@linux]$ cat f3
i am f1 file
[oracle@linux]$ rm -f f1
[oracle@linux]$ cat f2
i am f1 file
[oracle@linux]$ cat f3
cat: f3: no such file or directory
通過上面的測試可以看出:當刪除原始檔案f1後,硬連線f2不受影響,但是符號連線f1檔案無效
3.總結
依此您可以做一些相關的測試,可以得到以下全部結論:
1).刪除符號連線f3,對f1,f2無影響;
2).刪除硬連線f2,對f1,f3也無影響;
3).刪除原檔案f1,對硬連線f2沒有影響,導致符號連線f3失效;
4).同時刪除原檔案f1,硬連線f2,整個檔案會真正的被刪除。
Windows下建立硬鏈結和軟鏈結 符號鏈結
首先簡單理解一下硬鏈結和符號鏈結 軟鏈結 的區別 此文中的符號鏈結和軟鏈結指同一概念 硬連線指向的是節點 inode 而軟連線指向的是路徑 path 最初的檔名與所有的硬鏈結地位是對等的,比如為檔案 a 建立了硬鏈結 b c d。那麼a b c d之中只要有乙個檔案未刪除,這個檔案就可通未刪除的名稱...
CentOS硬軟鏈結
1.軟鏈結,以路徑的形式存在。類似於windows作業系統中的快捷方式 2.軟鏈結可以 跨檔案系統 硬鏈結不可以 3.軟鏈結可以對乙個不存在的檔名進行鏈結 4.軟鏈結可以對目錄進行鏈結 5.軟鏈結占用inode 1.硬鏈結,以檔案副本的形式存在。但不占用實際空間。2.不允許給目錄建立硬鏈結 3.硬鏈...
軟鏈結和硬鏈結的建立
硬鏈結就是同乙個檔案使用了多個別名 他們有共同的 inode 硬鏈結可由命令 link 或 ln 建立,如 link oldfile newfile ln oldfile newfile 由於硬鏈結是有著相同 inode 號僅檔名不同的檔案,因此,刪除乙個硬鏈結檔案並不影響其他有相同 inode 號...