硬鏈接與軟鏈接

硬連接:

         其本質就是:一個文件,多個名字。注意:目錄是沒有硬鏈接的。

ln filename linkname創建硬鏈接,注意源文件和鏈接文件位置順序,硬鏈接不可以跨分區建。

在創建硬鏈接時會增加硬連接數,可以通過ls –l查看,如下圖所示的,可看到硬鏈接數。

硬鏈接與軟鏈接

硬鏈接創建好,源文件和鏈接文件實際上是兩個獨立的文件,對任何一方進行刪除都不會影響到另一方,但是修改其中一方,另外一方也會變:例如:

 

一:建立硬鏈接:(因為硬鏈接不能跨分區,所以我先拷貝了/etc/passwd/app下,然后創建了硬鏈接文件pwd。)在圖中可以看到在剛拷貝過來passwd后,其硬鏈接數顯示為1,建立硬鏈接后顯示為2,所以創建硬鏈接實際上實在增加硬連接數,一個文件,不同名字而已。

 硬鏈接與軟鏈接

二:然后對鏈接文件pwd進行修改:(這里用的是nanopwd進行的修改,下方有一些輔助按鍵說明,寫完之后呢,按ctrl +X鍵進行保存退出,再按y鍵確定,最后回車結束。)

硬鏈接與軟鏈接

三:在源文件passwd里可以看到修改的數據:(因為內容較長,在這里我就截取了一部分,最主要是看文件的變化),修改鏈接文件源文件也會隨著改變,當然,反過來也一樣。這里就省略了。

 硬鏈接與軟鏈接

四:把源文件刪除后,可以看到鏈接文件依然存在,而且還可以被訪問,硬鏈接數減少為1,所以,硬連接的文件都是獨立存在的,刪除任一方,另一方都不會改變,只是硬連接數的增加和減少。

硬鏈接與軟鏈接


對于硬鏈接數,舉個例子:在/app下創建一個目錄(目錄是不能創建硬鏈接,但不代表沒有硬鏈接數),/app/a/b,可以ls –l查看一下a的硬鏈接數為3,如下圖所示,有三個inode(索引號)一樣的三個文件,分別是,/app下的100663680 a;/app/a下的當前目錄100663680 . ;/app/a/b下的上一級目錄100663680 .. 。這三個文件。(inode號是按照inode表自動生成的,)

硬鏈接與軟鏈接

 

 

 

軟鏈接呢,也可以叫做快捷方式,因為鏈接文件只是存了源文件的一個路徑,

ln –s filename linkname創建軟鏈接,軟鏈接可以跨分區建。

而且在創建軟鏈接后,改變鏈接文件不會改變源文件,但若是改變了源文件,那么鏈接文件也會發生變化,因為在執行鏈接文件的時候,其實是順著保存的源文件的路徑去找的源文件然后執行的源文件。例如:

 

一:新建軟鏈接,會看到和硬鏈接有所不同,硬鏈接都是文件,軟鏈接是一個快捷方式,鏈接文件有顏色,但是硬連接數沒有發生改變。

硬鏈接與軟鏈接

二:對軟鏈接文件pwd進行編輯修改內容,

硬鏈接與軟鏈接

三: 可以看到,和硬鏈接一樣,源文件也被改變:

硬鏈接與軟鏈接

四:刪除鏈接文件對源文件沒有影響,還是能查看內容,但是…..

硬鏈接與軟鏈接

五: 刪除源文件后,鏈接文件無內容,證明了軟鏈接存的只是路徑,

硬鏈接與軟鏈接

 

在創建軟鏈接時,出現l一些問題:以下是我在創建過程中出現的問題:

        

/app下有兩個目錄dir1dir2,在dir1下有一個目錄文件issue,dir2下有一個目錄sub,想在/app/dir2/sub下產生issue的鏈接:如下圖所示:

 

一:其中(-p)是你多級創建目錄,tree可以直觀的顯示出結構,但此時可以看到,創建的鏈接文件是紅色的,也就是錯誤的做法,因為sub是個空目錄,多在sub后加了個“/”,指到了它的下一級,

硬鏈接與軟鏈接

 

二:這種情況下才是正確的:相當于在sub下新建了一個test的目錄用于存放鏈接/app/dir1/issue.

硬鏈接與軟鏈接

 

 

三:還有這種,相當于在在sub下建了一個和/app/dir1/issue一樣的名字作為它的鏈接。

硬鏈接與軟鏈接

 

四:還有一種方法,因為要做dir2/sub下建立軟鏈接,所以就先進到sub下,用 “.” 表示當前路徑,讓源文件使用絕對路徑有一定的弊端:把issuedir1下挪走,軟鏈接就會發生變化:

硬鏈接與軟鏈接

執行了mv后,issue的路徑發生了變化,從之前的/app/dir1/issue,調到了/app/dir2下,

因此軟鏈接失效了,

硬鏈接與軟鏈接

五:相對于app建的;把dir2/sub/issue挪到當前目錄也就是/app下,就可以用了。

硬鏈接與軟鏈接

 

綜上所述呢,在建立軟鏈接時,要看一下在哪一級創建的,所在目錄不同,創建時的路徑也不同,

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

(0)
M.SunM.Sun
上一篇 2017-07-20
下一篇 2017-07-20

相關推薦

  • Linux終端類型

    Linux終端類型 關鍵字:linux終端,串行終端ttySn;偽終端pty;控制終端tty;控制臺終端console 要想與Linux打交道,就必須學會使用Linux終端。所謂Linux終端,其實也就是一種控制臺,一種字符設備,通常用tty標識,它是用戶和Linux內核交互的平臺,用戶能在平臺上通過各種指令操作Linux。終端的特殊設備文件一般分為以下幾種…

    Linux干貨 2016-10-19
  • CentOS 7破解密碼教程

    啟動時任意鍵暫停啟動  按e鍵進入編輯模式  將光標移動linux16開始的行,添加內核參數rd.break  按ctrl-x啟動  mount –o remount,rw /sysroot  chroot /sysroot  passwd root  touch /.autorelabe…

    Linux干貨 2016-12-01
  • 馬哥教育網絡班20期+第3周課程練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。  who | cut -d' ' -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 last | head …

    Linux干貨 2016-06-26
  • shell腳本編程小節及作業

    使用read命令來接收輸入          使用read來把輸入值分配給一個或多個shell變量:         -p:指定要顯示的提示     &nbsp…

    Linux干貨 2016-08-22
  • DNS and BIND 進階

    主DNS服務器的ip地址:192.168.1.109 主DNS服務器主機名:bogon 正向區域名:sh.com 反向區域名:1.168.192.in-addr.arpa 正向區域文件名稱:/var/named/sh.com.hosts 反向區域文件名稱:/var/named/192.168.1.rev 配置主文件/etc/named.conf過程 1、編輯…

    Linux干貨 2016-12-06
  • LVM相關使用

    前言: LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,Linux用戶安裝Linux操作系統時遇到的一個常見的難以決定的問題就是如何正確地評估各分區大小,以分配合適的硬盤空間。普通的磁盤分區管理方式在邏輯分區劃分…

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