軟鏈接和硬鏈接的區別

      什么是鏈接文件? 使用windows的朋友們應該會經常接觸到快捷方式吧!它也就是能讓我們快速的打開一個目標應用程序,文件,或者文件夾來使我們的操作更加快捷。那么下面我們就來簡單聊聊linux上的“鏈接文件”吧!

 

 

    

      linux上什么是鏈接文件呢?這里我們通過一條命令來查看一下:

示例:

[root@Echo /]# ll lib

lrwxrwxrwx. 1 root root 7 Oct  8 21:23 lib -> usr/lib

      lrwxrwxrwx這里開頭的l”代表鏈接文件,比如說,如果這里是“”就是一個普通文件,“d”是一個目錄文件,這里就不詳細解釋linux上的文件類型了。

   其實在linux上鏈接文件分為2種,一種是硬鏈接( hard links)另外一種是軟連接或者符號鏈接(symbolic links),那我們先說說硬鏈接吧。

         

   說到硬鏈接,這里我們還要普及一個知識點,那是就inode(節點),其實文件是由元數據(metadata)和數據(data)組成,元數據也就是包括文件名,大小,屬性等,inode就是記錄文件的屬性的,一個文件會占用一個inode,那么文件的內容由inode中記錄的信息去查找,好了,知道了這些,我們就能更容易了解硬鏈接了。

示例:

[root@Echo test]# ln /etc/issue ./

[root@Echo test]# ll -i /etc/issue /test/issue

134299792 -rw-r–r–. 2 root root 79 Oct  8 21:36 /etc/issue

134299792 -rw-r–r–. 2 root root 79 Oct  8 21:36 /test/issue

讓我們來看看這個示例,通過命令我們看出了,做完硬鏈接之后的兩個文件的確是指向同一個inode,上面說的文件的內容是由inode中的記錄的信息查找的,所以這兩個文件的大小都是一樣的,還有文件被鏈接的次數是每做一次硬鏈接就會增長一次,但是磁盤空間與inode的數目都不會改變

  不能跨文件系統:

       因為不同的文件系統都會有自己不同的inode劃分,所以硬鏈接不能跨文件系統。

  不能鏈接目錄;

       雖然說man手冊里有硬鏈接目錄的命令,但是連管理員使用都拒絕了,所以現在對目錄硬鏈接還不是很支持。

   軟連接(其實這里說是快捷方式才差不多),相對與硬鏈接,軟連接就很好理解了,它就是在創建一個獨立的文件,而這個文件會讓數據的讀取指向它鏈接的那個文件的文件名,由于只是用文件來指向作為操作,那么當源文件被刪,改名或者移動到其他位置,軟連接打不開了,會一直閃爍。

示例:

[root@Echo test]# ln -s /etc/passwd ./

[root@Echo test]# ll -i /etc/passwd /test/passwd

134670035 -rw-r–r– 1 root root 2074 Oct 19 19:53 /etc/passwd

      379 lrwxrwxrwx 1 root root   11 Oct 19 21:46 /test/passwd -> /etc/passwd

上面的示例發現;我們同硬鏈接做對比,鏈接文件的顏色是淺藍色的,而且inode是不一樣的和我們上面說的一樣,還有你看下鏈接文件的大小是不是被鏈接文件的絕對路徑的字符數“/etc/passwd”是不是11個字符,在這里說明一下,“–>”指向的就是被鏈接的文件名,還有軟連接的文件會占用磁盤空間和inode,建議在創建軟連接的時候指相對路徑,而硬鏈接來說相對,絕對路徑都行。當然相對于硬鏈接來說是它可以對目錄進行鏈接,也可以跨分區。

那么下面就簡單說一下命令的用法:

硬鏈接:

ln filename [linkname]

軟鏈接:

ln -s filename [linkname]

 

其他選項:

-b–backup:刪除,覆蓋目標文件之前的備份;

-d-F——directory:建立目錄的硬連接;

-f——force:強行建立文件或目錄的連接,不論文件或目錄是否存在;

-i——interactive:覆蓋既有文件之前先詢問用戶;

       -n–no-dereference:把符號連接的目的目錄視為一般文件

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

(0)
EchoEcho
上一篇 2016-10-19 22:17
下一篇 2016-10-19 23:43

相關推薦

  • CentOS 7和CentOS 6 使用gpg工具實現公鑰加密和解密

    運行環境: [root@Shining ~]# uname -a Linux Shining.ACG 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x…

    Linux干貨 2016-12-01
  • 文件管理相關

     rename:對文件重命名     rename [options] expression replacement file        示例:          # rename -v cut.exe cut.exe3 cut.exe…

    Linux干貨 2017-02-25
  • CentOS 系統啟動流程[轉載]

    Linux(CentOS)系統啟動過程大致按照如下順序: POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sb…

    Linux干貨 2017-01-28
  • LVM邏輯卷&RAID管理&磁盤配置詳解

    LVM邏輯卷管理 應用場景:想象一下,你通過傳統的硬盤分區方式為某些用戶提供了一塊磁盤,隨著用戶數據的不斷增加,分區的容量告急。這時要增加容量,只能選擇用另一塊容量更大的硬盤或分區來替換,在這個過程中,你需要將數據先拷貝至新設備,拷貝完成之后,再用新設備替換容量告罄的設備。假設你很有耐心并且整個數據的拷貝過程是順順利利的,你也需要考慮靠背后文件的權限變化、替…

    Linux干貨 2016-09-02
  • centos7從最小化安裝到圖形界面

    man /etc/inittab
    systemctl get-default
    sytemctl set-default graphical.target|multi-user.target
    yum install $a -y

    2017-12-09
欧美性久久久久