Linux基礎知識之軟硬鏈接

系統環境:

   該博文以CentOS6.8_x86_64系統為基礎,Xshell5遠程登錄CentOS6.8系統,以root身份登錄系統。

為什么要學習符號(軟)鏈接和硬鏈接?

   符號(軟)鏈接和硬鏈接是Linux文件系統中的一個重要的概念,軟硬鏈接的學習過程中會涉及一些文件系統中的索引節點(inode),索引節點是虛擬文件系統上的非常重要的知識,我們通過分析和學習軟鏈接和硬鏈接的區別,可以更好利用軟硬鏈接的知識去分析文件系統,更好的去理解Linux系統的原理,使用軟硬鏈接會更加縮小系統,還有就是可以更加方便的去移值Linux系統(絕對路徑和相對路徑的使用會更加方便的進行系統的移值)。

   硬鏈接(Hard Link)的分析:

    課件的解析:blob.png

    硬鏈接的詳細解析:

    硬鏈接是通過索引節點來進行連接文件的。在Linux系統之中,保存在磁盤分區中的文件都有一個單一的inode號(因為Linux一切皆文件,不管什么類型的文件,都會對應一個Linux的節點號,※磁盤上的每一個分區都會有一套自己的inode編號,等分析inode的博客會詳細的講解這些知識)。在Linux之中,多個文件名或單個文件名會通過單一的索引節點指向每一個單一的文件。硬鏈接的作用是允許一個文件擁有多個有效路徑名,這樣每一個用戶都會將一些重要文件通過硬鏈接生成多個文件名,可以防止用戶刪除某一個文件名,而導致刪除整個文件的鏈接關系被刪除,導致文件被刪除,建立鏈接的關系之后,刪除單一的硬鏈接,文件系統的對應關系都不會被刪除,只有當文件的最后一個硬鏈接被刪除之后,文件才會被刪除,這樣簡單的備份即不用另外使用太多另外的磁盤空間,而做到防止“誤刪”的功能。真正的文件刪除的條件是與之相關的所有的硬件接文件均被刪除,文件才會被刪除,文件的數據塊和目錄的連接才會被釋放。

   硬鏈接的語法和命令的使用實例:

        ln filename [linkname ]

   實例分析:

      a.創建一個文件名為f1的文件;
      b.將how are you? 通過輸入重定向寫入f1文件中;

      c.給f1文件創建一個名為f2的硬鏈接;

      d.使用ls -i 查看f1文件和f2文件的inode號,顯示為同一個inode號(11);

      e.刪除文件f1;

      f.查看f2中的內容,發現和f1中的內容相同,說明f1和f2互為相互的硬連接。

  blob.png

   符號(軟)鏈接(Symbolic Link)的分析:

      課件的解析:

blob.png

    語法:

       ln -s filename [linkname]

    符號鏈接的詳細解析:

             a.linux下的軟鏈接類似于windows下的快捷方式

             b.假設b文件是a文件的軟鏈接,當我們打開b文件實際通過b文件的鏈接指向的是a文件,確切的說我們最后打開的b文件是通過a文件的inode打開的文件。與此不同的是,b文件是a文件的硬鏈接的話,其實都是通過相同的inode打開文件。

              c.當b目錄為a目錄的軟鏈接的時候,進入b目錄,但實際上進入的是a目錄。

              d.軟連接的兩個文件的inode號是不相同的,硬鏈接的兩個inode號是相同的。

              e.軟鏈接文件a和b的權限是不相同的,硬鏈接的a和b文件的權限是相同的。   

              f.當創建軟連接時,a文件和它的軟連接b不再同一目錄時,一定要說明軟鏈接b對于文件a的相對路徑(相對路徑是相對于軟鏈接文件的路徑,而不是現對于當前目錄的路徑),或者直接指明絕對路徑。(※在真正的系統中,軟鏈接多數使用的是指定的相對路徑,而不是絕對路徑,使用相對路徑便于文件和鏈接文件的移值性※)

              g.默認創建軟連接的時候,認為創建的鏈接文件和目標文件是在同一目錄。

    符號(軟)鏈接實例:

      a.新建文件f1,創建f1的軟鏈接f2.(f1 f2 文件的inode號不同,f2 指向f1 文件)

      blob.png

      b.在root目錄下創建文件f1,對文件f1分別在/testdir/目錄下,利用下面三種方法創建軟鏈接f1、f2、f3。我們可以發現,f1是錯誤的,f2、f3都是正確的,f2使用的是絕對路徑的創建軟鏈接(在本地系統使用無障礙,但是移值系統之后,可能會造成軟鏈接無法使用),f3是使用的相對路徑創建的軟鏈接。(※相對路徑是相對于軟鏈接文件的路徑,而不是現對于當前目錄的路徑※,增強文件跟隨系統的移值性。)

      blob.png

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

(0)
sjsirsjsir
上一篇 2016-08-02
下一篇 2016-08-02

相關推薦

  • N26-博客作業-week5

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

    Linux干貨 2017-03-05
  • 模擬centos6.8系統下initramfs文件和vmlinuz文件損壞恢復

    實驗一:關于刪除initramfs-2.6.32-642.el6.x86_64.img 文件恢復實驗,實驗環境centos6.8系統 1.安全起見,請先安排做快照及備份 把initramfs-2.6.32-642.el6.x86_64.img 文件復制一份/root目錄下。 [root@centos6: boot]# cp -a initramfs-2.6.…

    2017-05-15
  • 震驚!!iptables還能這樣用!

    基本語法:iptables [-t 表] [操作命令] [鏈][規則匹配器][-j 目標動作] 系統的INPUT和OUTPUT默認策略為DROP; # iptables -P INPUT DROP # iptables -P OUTPUT DROP 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin…

    系統運維 2017-04-18
  • 第三周作業

    第三周  文本處理工具:             linux上文本處理三劍客:                      grep、egrep、fgrep:文本過濾工具(模式pat…

    Linux干貨 2016-12-18
  • 文件查找find與壓縮

    1.locate:   locate是查詢系統上預建的文件索引數據庫    /var/lib/mlocate/mlocate.db   依賴于事先構建的索引   索引的構建是在系統較為空閑時自動進行(周期性任務),管理 員手動更新數據庫(updatedb)    缺點:索引構建過…

    Linux干貨 2016-08-18
  • HSRP vs VRRP

    HSRP:(Hot Standby Router Protocol)-熱備份路由協議 是cisco平臺一種特有的技術,是cisco的私有協議。 VRRP:(Virtual Router Redundancy Protocol)-虛擬路由冗余協議 是國際標準,由IETF提出的解決局域網中配置靜態網關出現單點失效現象的路由協議。 ----------------…

    Linux干貨 2016-10-19
欧美性久久久久