linux《淺談Linux的硬鏈接和軟鏈接的區別》

首先先闡述一下Linux中的inode的概念,文件的內容都儲存在硬盤的block中,我們還必須找到一個地方儲存文件的元信息,比如文件的創建者、文件的創建日期、文件的大小等等,這種儲存文件元信息的區域就叫做inode(索引節點)


用法:

ln [options] existing link
"existing"爲源文件/或目錄,"link"爲要創建的文件鏈接名稱或目標目錄

常用可選[options] –f 表示無論”link”或者"link"存在與否,都創建鏈接,若不存在,則新建"link"或"link";-n 表示若"link"或"link"不存在,則不創建鏈接。


硬鏈接(hard link)

      硬鏈接的意思就是一個文件可以有多個名稱,只刪除一個硬鏈接不影響文件的內容和元信息只有把所有的硬鏈接都刪除之後,存儲文件內容的block和inode纔會被釋放掉。也就是說,文件才被真正的刪除

示例:

<span style="line-height: 18px;"><span style="font-family:Tahoma;font-size:12px;">[root@CentOS testdir]# ls -il                                                 --命令1
total 0
<span style="color:#ff0000;">1186462 </span>-rw-r--r--. <span style="color:#ff0000;">1</span> root root 0 Jan 27 05:06 srcfile02
root@CentOS testdir]# ln -df srcfile02 ../linkdir/linkfile02         --命令2,創建硬鏈接
[root@CentOS testdir]# ls -il                                                 --命令3
total 0
<span style="color:#ff0000;">1186462</span> -rw-r--r--. <span style="color:#ff0000;">2</span> root root 0 Jan 27 05:06 srcfile02
[root@CentOS linkdir]# ls -il                                                  --命令4 
total 0
<span style="color:#ff0000;">1186462 </span>-rw-r--r--. <span style="color:#ff0000;">2</span> root root 0 Jan 27 05:06 linkfile02</span></span><span style="font-size: 12px; font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px;">
</span>
(1).硬鏈接的inode號跟源文件一致(此時源文件"srcfile02"和"linkfile02"從本質上來說是一樣的,因爲它們的inode一致);

(2).新增硬鏈接會增加文件的鏈接數目


軟鏈接(symbolic link)

      軟鏈接的方式則是生產一個特殊的文件,該文件的內容指向源文件的位置。類似於Windows下的快捷方式,當源文件被刪除後,該軟鏈接則會失效。硬鏈接不能存在於跨文件系統中,而軟鏈接可以存在於跨文件系統中


示例:

<span style="font-family:Tahoma;font-size:12px;">[root@CentOS testdir]# ls -il                                       --命令1
total 0
<span style="color:#ff0000;">1186462 </span>-rw-r--r--. <span style="color:#ff0000;">1</span> root root 0 Jan 27 05:06 srcfile02
[root@CentOS testdir]# ln <span style="color:#ff0000;">-sf</span> srcfile02 ../linkdir            --命令2,創建軟鏈接
[root@CentOS testdir]# ls -il                                       --命令3 
total 0
<span style="color:#ff0000;">1186462 </span>-rw-r--r--. <span style="color:#ff0000;">1</span> root root 0 Jan 27 05:06 srcfile02
[root@CentOS linkdir]# ls -il                                        --命令4
total 0
<span style="color:#ff0000;">1186464 </span>lrwxrwxrwx. <span style="color:#ff0000;">1</span> root root 9 Jan 27 05:31 srcfile02 -> srcfile0</span>

(1).軟鏈接的inode和源文件的inode不一致

(2).新建的軟鏈接不會增加文件的鏈接數目
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章