硬鏈接和軟鏈接的區別

硬鏈接和軟鏈接的區別

1、概念

在linux中,鏈接可分為兩種:一種為硬鏈接,另一種為軟鏈接。
硬鏈接:ln 源文件 目標文件
軟鏈接:ln -s(soft)源文件 目標文件

硬鏈接

硬鏈接是指通過索引節點inode來進行鏈接。
linux系統中每個文件對應一個inode,并且允許多個文件名指向用一個inode。這種情況的文件就成為硬鏈接。
它的作用之一就是允許一個文件擁有多個入口,防止重要數據誤刪。

硬鏈接的原理:

硬鏈接和軟鏈接的區別

軟鏈接

軟鏈接也稱為符號鏈接,相當于windows中的快捷方式。文件類型為L,是一個特殊的文件。文件中包含了另一個文件的路徑信息內容。

軟鏈接的原理:

硬鏈接和軟鏈接的區別

2、實驗

實驗1:首先創建一個magedufile,可以看到硬鏈接數為1,通過ln創建一個硬鏈接magedufile_link,再次通過ls -li,可以發現數字變成2,兩個文件第一列inode數量都為33612019。cat硬鏈接內容與源文件一樣。把源文件刪除后,link文件依然還在,內容沒丟失,鏈接數變為1。ln不能對目錄創建硬鏈接。

[root@centos7 magedu]#ls -l
-rw-r–r–. 1 root root 17 Jul 23 13:38 magedufile
[root@centos7 magedu]#cat magedufile 
i am study linux
[root@centos7 magedu]#ln magedufile magedufile_link
[root@centos7 magedu]#ls -li
total 8
33612019 -rw-r–r–. 2 root root 17 Jul 23 13:38 magedufile
33612019 -rw-r–r–. 2 root root 17 Jul 23 13:38 magedufile_link
[root@centos7 magedu]#cat magedufile_link 
i am study linux
[root@centos7 magedu]#rm -f magedufile
[root@centos7 magedu]#ls
magedufile_link
[root@centos7 magedu]#cat magedufile_link 
i am study linux
[root@centos7 magedu]#ls -li
total 4
33612019 -rw-r–r–. 1 root root 17 Jul 23 13:38 magedufile_link
[root@centos7 ~]#ln Desktop Desktop.bak
ln: ‘Desktop’: hard link not allowed for directory

總結: 
    (1)具有相同inode節點號的多個文件是為互為硬鏈接文件
    (2)刪除硬鏈接文件或者源文件,文件本身并未被刪除
    (3)刪除文件的所有硬鏈接和源文件,文件才真正被刪除
    (4)硬鏈接文件是文件的另一個入口
    (5)硬鏈接文件可以用rm命令刪除

實驗2:創建一個文件,通過ln -s創建軟鏈接后查看發現inode不同,軟鏈接后面跟一個->指向源文件,當刪除源文件后,軟鏈接指向發生錯誤。

[root@centos7 app]#echo “i am study linux” >/app/magedudir
[root@centos7 app]#ls -l
total 4
-rw-r–r–. 1 root root 17 Jul 23 15:01 magedudir
[root@centos7 app]#ln -s magedudir magedudir_slink
[root@centos7 app]#ls -li 
total 4
67 -rw-r–r–. 1 root root 17 Jul 23 15:01 magedudir
68 lrwxrwxrwx. 1 root root  9 Jul 23 15:03 magedudir_slink -> magedudir
硬鏈接和軟鏈接的區別

總結:
(1)快捷方式,可以通過readlink查看指向
(2)是一個文本文件。里面存放的是源文件的路徑,指向源文件
(3)刪除源文件,軟鏈接依然存在,但是無法正常指向源文件
(4)失效的時候紅底閃爍提示
(5)軟鏈接和源文件是不同類型的文件,也是不同的文件。inode不相同。
(6)刪除軟鏈接文件可以用rm命令

3、區別

(1)創建方式的不同。默認不帶參數的情況下,ln創建的是硬鏈接,帶-s參數創建的是軟鏈接
(2)硬鏈接文件與源文件的inode相同,而軟鏈接文件的inode與源文件不同
(3)ln不能對目錄創建硬鏈接,但可以創建軟鏈接。
(4)刪除文件的軟鏈接文件,對源文件及硬鏈接文件無任何影響
(5)刪除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響
(6)刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致軟鏈接失效
(7)同時刪除源文件及其硬鏈接,整個文件才會被刪除
(8)軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統

4、附加

文件的刪除原理

文件的刪除由兩個變量控制:
                     i_link  文件的硬鏈接數量
                     i_count 引用計數(有一個程序調用就+1)
文件刪除的條件:
                     i_link=0 && i_count=0

原創文章,作者:eleven,如若轉載,請注明出處:http://www.www58058.com/82407

(0)
eleveneleven
上一篇 2017-07-23 15:05
下一篇 2017-07-23 16:44

相關推薦

  • 馬哥Linux第六周作業

    網絡管理 進程查看及管理之ps,top,htop,dstat,vmstat

    2018-01-20
  • N22-第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i count1=0 declare -i count2=0 for i in $(awk -F : '{print $7}&#03…

    Linux干貨 2016-10-17
  • 用戶及相關權限命令

    2018-03-26

    2018-03-26
  • Linux系統認知

    前言 在認識Linux系統之前先介紹下計算機的組成構造及其功能: 1,簡單來說計算機可以劃分為軟件系統和硬件系統: (1)軟件系統自不必說就是各種不同的程序,協助用戶更好地使用電腦。 (2)硬件系統指的是主機、顯示器、鼠鍵等硬件設備。 2,按馮諾依曼體系可將計算機按邏輯構成分為: (1)CPU(運算器、控制器)。運算器是數據處理裝置,用來完成對數據的算術運算…

    Linux干貨 2016-09-20
  • 計算機的組成和其功能

    圖:計算機組成架構 計算機由硬件和軟件組成 硬件部分: CPU:又稱中央處理器,整個系統最高執行單元,執行各種運算,控制電腦自動協調地完成各種操作。 主板:它把計算機的各個部件緊密的連接在一起,各個部件通過主板進行數據傳輸,計算機重要的“交通樞紐”都在主板上,他的工作穩定性影響整機的工作穩定性。因同CPU的插腳和性能不同,所以針對不同的CPU也有不同的主板?!?/p>

    Linux干貨 2016-08-08
  • lvs-keepalived

    keepalived: vrrp協議:Virtual Redundant Routing Protocol        術語:        虛擬路由器:Virtual Router &n…

    Linux干貨 2017-05-13
欧美性久久久久