軟鏈接和硬鏈接的區別

軟鏈接和硬鏈接的區別

什么是鏈接:

文件都是文件名和數據組成的,在linux中被分成兩部分:數據和元數據。數據是記錄文件的真實內容的地方;元數據是記錄文件屬性的地方:創建者、大小、創建時間等信息。元數據中的inode號這是唯一標識文件身份的屬性。在linux中,文件的inode號可以通過ls –i命令查看。在linux中為了解決文件共享使用,引入了兩種鏈接:硬鏈接和軟鏈接。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節省存儲等好處。若一個 inode 號對應多個文件名,則稱這些文件為硬鏈接。換言之,硬鏈接就是同一個文件使用了多個別名。

硬鏈接:

硬鏈接可以通過ln命令創建:

blob.png

硬鏈接有相同的inode號,只是文件名不同的文件,所以硬鏈接有以下的幾點特性:

1、文件有相同的inode號、數據塊;

blob.png

2、只能對已經存在的文件進行創建;

blob.png

3、不能跨分區進行創建;

blob.png

4、不能對目錄創建硬鏈接,而只能對文件。因為在linux的目錄中,有兩個特殊的文件...,用命令查看這兩個目錄的inode號可以知道這兩個是兩個硬鏈接,如果可以創建硬鏈接的話,就會形成目錄環;

blob.png

blob.png

5、刪除一個硬鏈接并不影響其他有相同inode號的文件,將其中的一個硬鏈接刪除后,其他的文件的鏈接數-1,只有當鏈接數為0時,文件刪除;

blob.png

linux系統中,可以通過命令find PATH –inum XXX 命令來查看inode號為XXX的文件已經文件的路徑。

注:在一個分區中,會出現inode號被用完但是磁盤還有空間剩余的情況,這時候在該分區中創建文件,會提示空間不足:

  blob.png

軟鏈接:

若文件的數據中存放的是指向的另一個文件的路徑名,這就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接有著自己的 inode 號以及用戶數據塊??梢杂?/span>ln –s XXX xxx命令來創建軟鏈接。

與硬鏈接相比,軟鏈接有以下的特點:

1、軟鏈接有自己的文件屬性、權限等;

2、可以跨分區創建;

3、可以對文件以及目錄創建;

4、創建軟鏈接時,鏈接計數不會增加;

5、刪除軟鏈接時,不會影響被指向的文件;但是當被指向的文件或目錄被刪除時,相關的鏈接就會出錯;

原創文章,作者:王更生,如若轉載,請注明出處:http://www.www58058.com/53284

(1)
王更生王更生
上一篇 2016-10-20 21:06
下一篇 2016-10-20 21:21

相關推薦

  • 學習宣言

     學習計劃:參考N24學習時間與線路圖,盡最大努力完成。 目標:學習好Linux,提升自我價值,找一份待遇好的工作。 宣言:每一次輕易的放棄,都是人生的一處敗筆,為了夢想,加油!

    Linux資訊 2016-10-26
  • 優云軟件:雙態運維下,老司機是怎么玩CMDB的?

    行業內有個科技公司,CMDB前后建設12年,重構了N次,一言不合就重構,我深深的被這種屢拆屢戰,初心不改精神所折服。我真心想問下做CMDB的兄弟,各位是怎么熬過來的?請不要回避,其實我們都曾被這樣虐過! 近幾年我司承建國內很多傳統行業的CMDB項目,坦白的說,隨著互聯網+熱潮的沖擊,因很多傳統企業也慢慢的在轉變業務,把很多傳統型的業務互聯網化,或者開辟新型業…

    2016-08-05
  • 8-5作業

    4、取本機ip地址 ifconfig | grep -o "1[0-9]\+\.[0-9]\+\.[0-9]\+\.[1-2][0-5][0-4]" 5、取各分區利用率的數值 df | grep "/dev/sda"|tr -s ' ' |cut -d" " -f5 |tr -d…

    Linux干貨 2016-08-10
  • 8.5-文本處理工具(命令篇)

     1、文件查看命令: cat, tac,rev cat [OPTION]… [FILE]…     -E: 顯示行結束符$     -n: 對顯示出的每一行進行編號     -A:顯…

    Linux干貨 2016-08-07
  • bash 面試題

    1、設計一個shell腳本,在/userdata目錄下建立10個目錄,即user1~user50,并設置每個目錄的權限,其中其他用戶的權限為:讀;文件所有者的權限為:讀、寫、執行;文件所有者所在組的權限為:讀、執行 [root@node1 script]# cat mkuserdata.sh #!/bin/bash # author jin.ren # da…

    Linux干貨 2015-07-03
  • 第5周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell     ~]# egrep "^(root|fedora|user1)" /etc/passwd 2、找出/etc/rc.d/init.d/functions文件中某單詞后面跟一組小括號的行,如:hello();  …

    Linux干貨 2017-01-07
欧美性久久久久