軟鏈接與硬鏈接的區別

  這兩牽扯到鏈接,那么先介紹以下鏈接。

  在文件系統中,有一種可以把不同的文件相連接到一起的機制,這個機制叫做鏈接。通俗的話來說就是打開兩個不同的文件夾,其實進去的是同一個。它可以把一個文件用不同的名字和路徑來表示出來。系統通過inode(索引節點,文件唯一標識)來識別是否為同一個文件,無論系統上有有多少個鏈接,在磁盤上只有一個唯一的inode,只要這個文件的的鏈接數不為0,那么這個文件件的inode會一直存在,文件會一直保存。

 

例如用ls-l可以查看文件的詳情:

軟鏈接與硬鏈接的區別

在這文件中,綠色的3txt與2.txt構成了一個鏈接。在Linux中->就代表著鏈接。

硬鏈接:

   硬鏈接就相當于一個指針,指向文件的索引節點,系統并不會為他重新分配新的inode,但是沒添加一個硬鏈接,文件鏈接數會加一。

   硬鏈接允許一個文件同時又多個路徑名,用戶只刪除一個硬鏈接并不影響這個文件的inode與其他相連接,只有最后一個鏈接被刪除后,這個文件的inode就釋放,數據塊就保持在空閑狀態允許被寫入。用這種硬鏈接可以有效的防止誤刪除。但是硬鏈接不能跨分區創建,不再同一個分區是無法直接與數據塊的inode相連接。也不允許給目錄創建硬鏈接。在創建硬鏈接時可以相對于當前路徑去創建,每創建一個硬鏈接就會會增加額外的記錄項以引用文件。硬鏈接也不會占用節點號,但會增加鏈接數。同一個文件無論創建多少個硬鏈接,他們的屬性都是完全相同的,這相當于是一個物理文件的不同名字。就像我們人一樣,一個人可以有多個名字,無論你叫什么名字,你還是你,你自己的屬性是不會改變的,總不會換一個名字就瘦了幾斤或者長高了吧。


語法:

                            ln  filename [linkname]

軟鏈接:

    又被稱作為符號鏈接。軟鏈接我們可以理解為windowx的快捷方式,相信大家都用過吧。創建一個軟鏈接其實就是創建一個特殊的文件,這個文件內容就是這個鏈接的信息。軟鏈接文件的大小就是這個路徑的大小。軟鏈接就是一個位置的處理,跟硬鏈接有本質的區別。舉個例子:當你對A創建一個軟鏈接,然后把A文件刪除了,那時這個鏈接并不會一起唄刪除,只是失效了。當你再重新在原來的地方創建一個以A命名的文件,再使用原來這個軟鏈接。你會發現,又連接進了新建的這個A文件里了。說明軟鏈接并不指定文件,而是指定的位置,等于給這個位置創建了另一條路徑。就相當于家房子的地址如果你搬家不住這了那么這個地址會不被你使用了,并不是這個地址就不存在了。當小明買了你家的房子住進去后,這個地址就會變為他們家的地址。所以軟鏈接就是一個鏈接符,指向了一個地址而已。創建軟鏈接后文件的鏈接數不會增長,不會增加目標inode的引用計數,因為只是指向一個地址,所以軟鏈接不但可以連接目錄而且還能跨分區進行連接。

語法:

       ln -s filename [linkname]

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

(0)
phosphorphosphor
上一篇 2017-05-25
下一篇 2017-05-25

相關推薦

  • Mariadb的主從復制實驗和半同步的實現

    1,主服務器需要開啟二進制日志記錄,并且授權一個用戶給從節點。 主服務器的主配置文件[mysqld]內容如下。 [mysqld] port=?3306 socket=?/tmp/mysql.sock skip-external-locking key_buffer_size?=?256M max_allowed_packet?=?1M table_open_…

    2017-09-18
  • class15磁盤管理(二) 高級磁盤管理(一)

    掛載點和/etc/fstab 配置文件系統體系 被mount、fsck和其它程序使用 系統重啟時保留文件系統體系 可以在設備欄使用文件系統卷標 使用mount -a命令掛載  /etc/fstab 中的所有文件系統 文件掛載配置文件 /etc/fstab每行定義一個要掛載的文件系統;   &nbsp…

    Linux干貨 2016-09-05
  • Lvm的創建

    一、LVM相關基礎: ????PE:類似與磁盤的block,這個的大小也會影響VG的大小 ????PV:是磁盤分區或邏輯上與磁盤分區具有相同功能的設備(RAID),是LVM的基本存儲模塊,但與基本的物理存儲模塊相比,卻包含有lvm相關的參數 ????VG:類似于非lvm系統中的物理磁盤,包含多個pv ????LV:類似于非lvm系統中的磁盤分區 ? PV相關…

    2016-04-10
  • 馬哥教育網絡班22期+第2周課程練習

    1、Linux上文件/目錄相關命令有哪些? 1)目錄管理類命令:mkdir、rmdir (1)mkdir:make directorise 創建文件夾  使用格式:      mkdir [OPTION]… DIRECTORY…    &nb…

    Linux干貨 2016-09-08
  • 軟raid實現raid5

    現在Linux系統有磁盤情況如下 現在從sda,sdb,sdc,sdd 分區取出10G 的空間做raid5. 第一步:建立分區 現在執行fdisk ?/dev/sd* 命令分區沖這四個磁盤劃分10G分區 分別是sda6,sdb1,sdc1,sdd1。 具體操作如下: 分區完之后,執行#partx -a /dev/sd* ?讓分區生效。具體效果如下: 分區完成…

    2017-12-06
欧美性久久久久