linux中的硬鏈接和軟鏈接

一、ln命令概述


    它的功能是爲某一個文件在另外一個位置建立一個同步的鏈接.當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在 其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間。


二、硬鏈接和軟鏈接的區別


    硬鏈接:是通過文件系統的inode連接來產生新的文件名,而不是產生新文件

    軟鏈接:類似Windows的快捷方式功能的文件,可以讓你快速連接到目標文件(或目錄)


三、硬鏈接

    語法:ln filename [linkname]


    1、創建硬鏈接會增加額外的記錄項以引用文件

    2、對應於同一文件系統上一個物理文件

    3、每個目錄引用相同的inode號

    4、創建時鏈接數遞增(鏈接數相當於一個文件有好幾個名字

       例如:

       3表示的是鏈接數,說明a的文件名字有三個a,b,c

        wKiom1ed6OnQ3SxoAAANRJwSeaw723.png

     5、刪除文件時:

        rm命令遞減計數的鏈接

        文件要存在,至少有一個鏈接數

        當鏈接數爲零時,該文件被刪除

        例如:

        把a刪除之後b的鏈接數就少了一個,變成了2,此時名字就只有b和c了

        wKioL1ed6U_TpSyZAAAQ000llL8893.png

     6、不能跨越驅動器或分區

        在同一個分區不同的目錄是可以創建硬鏈接的,但是不同分區就不能創建

        wKioL1ed6Yjgl1JDAADc0UT4CCs983.png

     7、目錄不能建立硬鏈接,但是目錄的節點號會變化

      例如:

        wKiom1ed6ijQecpmAAAGmNbMH2g411.png

        wKiom1ed6jWhAhO4AAAJ08N3nzQ324.png

        因爲.表示當前目錄,所以/bin的節點號爲2

        創建一個文件夾,節點數加一,這是因爲文件夾下面有個父目錄”..   

         wKioL1ed6vHgtAcsAAAMD4zGsCc038.png

         wKiom1ed6vGAOJ0oAAAGIfY1po4128.png

        需要注意的是:

            在centos6中節點數爲2的爲獨立分區,節點數爲1的是虛擬目錄

            在centos7中如果是分區的根儘量放在128中


四、軟鏈接

    語法:ln -s filename [linkname]


    1、一個符號鏈接指向另一個文件

    2、ls -l的顯示鏈接的名稱和引用的文件

    3、一個符號鏈接的內容是它引用文件的名稱

    4、可以對目錄進行

       例如:

       wKioL1ed7DnxhbZoAAAEbLYc89w418.png

       wKiom1ed7Dmx_hoBAAAL6SByqZk814.png

    5、可以跨分區

       軟連接沒有指定相對路徑或者絕對路徑的時候會報錯,他們會認爲你的鏈接文件和你的源文件    是在同一個目錄下面,在軟連接中一般都是採用相對路徑

        wKioL1ed7MWwrkEeAAAM0fk-Ljg976.png

     6、ls –s 原始文件軟鏈接

   原始文件相對路徑:相對的是軟鏈接文件路徑,而不是相對於當前工作目錄的路徑

    wKiom1ed7VDwCIFYAAAFNKfLRwo509.png

        wKioL1ed7VDQFFzhAAAQVq9M6SI861.png

 7、指向的是另一個文件的路徑;其大小爲指向的路徑字符串的長度;不增加或減少目標文件              inode 的引用計數;

        wKioL1ed7bKADo3dAAAWQehVV70330.png


五、總結

    使用ln如果不加任何參數的話,那麼就是hard link。而如果使用-s參數時,就做成差不多是Windows下面的快捷方式的意思,當你修改linux下的symbolic link文件時,則改動的其實是“源文件”,所以無論你的這個源文件被連接到哪裏去,只要你修改了連接文件,源文件就跟着變了。


 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章