linux《浅谈Linux的硬链接和软链接的区别》

来源:互联网 发布:js sort 排序 编辑:程序博客网 时间:2024/05/17 03:52
首先先阐述一下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                                                 --命令1total 0<span style="color:#ff0000;">1186462 </span>-rw-r--r--. <span style="color:#ff0000;">1</span> root root 0 Jan 27 05:06 srcfile02root@CentOS testdir]# ln -df srcfile02 ../linkdir/linkfile02         --命令2,创建硬链接[root@CentOS testdir]# ls -il                                                 --命令3total 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                                       --命令1total 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                                        --命令4total 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).新建的软链接不会增加文件的链接数目