硬鏈接與軟鏈接的區別

硬鏈接與軟連接

      

        本文僅用于個人學習參考:

        簡單介紹了硬鏈接與軟連接的區別。

        硬鏈接

        關于硬鏈接,也就是是說硬盤當中有個文件,在這個文件最初創建的時候有個文件名,由于各種原因,比如說原路徑比較難打,我們又創建了一個硬連,放在比較容易找到的位置。

        這一點本人的理解為:來到馬哥基地這里有兩個大門,左邊一個能進來,右邊那個也是沒問題的,只是左右名字不同罷了。

        硬鏈接命令語法:

        ln  filename [linkname]

                   filename: [創建出的鏈接名 ]:

                  linkname:需要被鏈接的文件

             

        硬鏈接特點:

        如上邊所說,馬哥都是同一位馬哥,只是稱呼不同。

    ]# touch 11.22           /*首先創建一個文件*/
    ]# ln 11.22 22.11        /*然后為該文件創建一個硬鏈接*/ 
    ]# ls -l                           /*對比原文件與鏈接文件*/
        total 0
        -rw-r--r-- 2 root root  0 Oct 20 10:28 11.22
        -rw-r--r-- 2 root root  0 Oct 20 10:28 22.11
        drwxr-xr-x 5 root root 31 Oct 20 10:17 kai
  •         在這個圖片中可以清楚的看到,原來的文件與我們使用 ln(硬鏈接)命令創建出來的數據塊(硬鏈接并不生成文件,下邊內容為了容易稱呼,我說成硬鏈接文件)除了文件名,其余都是一模一樣的。

  •         硬鏈接只能在同一分區內創建。硬鏈接不能針對與目錄使用。

            與cp的文件相似,不過硬鏈接文件可以同步更新,就算源文件丟失,硬鏈接也能訪問。

  •         當然,如果源文件與鏈接文件同時被刪除,那么該文件就徹底沒了。

 

        軟連接

        軟連接相當于windows的快捷方式,當源文件丟失,那么快捷方式也會失去作用。

        
        軟連接命令語法:

            ln -s filename [linkname]

                               filename: [創建出的鏈接名 ]:

                              linkname:需要被鏈接的文件

        軟連接特點:

    軟鏈接的須相對路徑設定必指定的是針對與目標文件的相對路徑,相對路徑可以防止源文件地址的改變。

# ln -s ../home/hua/ hua.1

# ls -l
lrwxrwxrwx  1 root root       12 Oct 20 11:29 hua.1 -> ../home/hua/

   

        軟鏈接與硬鏈接不同,若文件用戶數據塊中存放的內容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接有著自己的 inode 號以及用戶數據塊。

        因此軟鏈接的創建與使用沒有類似硬鏈接的諸多限制:

  •  軟鏈接有自己的文件屬性及權限等;

  • 可對不存在的文件或目錄創建軟鏈接;

  • 軟鏈接可交叉文件系統;

  • 軟鏈接可對文件或目錄創建;

  • 創建軟鏈接時,鏈接計數 i_nlink 不會增加;

  • 刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接(即 dangling link,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接)

        如上所說如果軟連接的原文件被刪除,那么相關鏈接就會死鏈。

    死鏈.png

         當然軟鏈接的用戶數據也可以是另一個軟鏈接的路徑,其解析過程是遞歸的。但需注意:軟鏈接創建時原文件的路徑指向使用相對路徑較好。硬鏈接創建的時候可以指定絕對路徑、相對路徑,或者直接就不指定了,因為硬鏈接創建完成之后,就相當于與原文件斷絕了關系,原文件位置的改變并不會影響到硬鏈接。

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

(0)
lyly
上一篇 2016-10-20
下一篇 2016-10-20

相關推薦

  • 第二十周作業

    一、用keepalived實現nginx與lvs的高可用集群 keepalived+nginx高可用環境:node1:    192.168.31.233     keepalived+nginx masternode2:    192.168.31.72      k…

    2017-07-22
  • 周期性計劃任務Cron詳解

    概述 cron 是Linux 或者類 Unix 系統的作業調度程序。利用它,我們可以配置某些命令或者腳本,讓命令和腳本在某個設定的時間內周期性地運行。本文主要以描述了 CentOS 6的cron命令的詳細知識。 了解cron組件 cron程序由程序包cronie提供,我們可以通過rpm -qi cronie查看cronie的信息。 cron 的組件包括: 1…

    Linux干貨 2016-09-18
  • 路由以及實驗

    路由 路由(routing)是指分組從源到目的地時,決定端到路徑的網絡范圍的進程。路由工作在OSI模型第三層——網絡層的數據包轉發設備。路由器通過轉發數據包來實現網絡互連。路由器可以支持多種協議,但絕大多數使用的是TCP/IP協議。路由器通常連接兩個或者多個由IP子網或者點到點協議表示的邏輯端口,至少擁有1個物理端口。路由器根據收到數據包中的網絡層地址以及路…

    Linux干貨 2017-05-11
  • N25 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [jizo@jizo ~]$ who | cut -d" " -f1 | uniq jizo  2、取出最后登錄到當前系統的用戶的相關信息。 [root@jizo ~]# who | tail -l jizo     …

    Linux干貨 2016-12-18
  • ?rsyslog

    rsyslog 概述 rsyslog支持的facility與priority facility:設施、信道: priority:級別 rsyslog程序 配置文件 配置日志記錄級別和路徑 配置日志記錄在遠程rsyslog server rsyslog server端 rsyslog client端 測試遠程服務器是否記錄日志 rsyslog記錄在MySQL中…

    Linux干貨 2016-10-16
  • 震驚??!iptables還能這樣用!

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

    系統運維 2017-04-18
欧美性久久久久