在Linux中,链接分为硬链接和软链接,软链接又称为符号链接(Symbolic Link),在不带任何参数的情况下,使用ln命令创建的是硬链接。

    硬链接:硬链接是通过索引节点来进行链接的。在Linux的文件系统中,保存在磁盘分区种的文件不管是什么类型的文件,都会为它分配一个编号,这个编号被称为索引节点编号(Inode Index)或Inode。多个文件名指向同一个索引节点(Inode),一般这种链接就称为硬链接。硬链接的作用之一是允许一个文件拥有多个有效路径名。这样用户可以建立硬链接到重要的文件,以防止“误删”源数据。创建硬链接源文件必须存在。并且硬链接只能建立文件的硬链接,不可以是目录。硬链接相当于文件的另外一个入口。使用ln命令可以直接创建。

    软链接:又称为符号链接。类似于Windows中的快捷方式,它实际上是一个特殊的文件。在软链接中。软链接文件实际上就是一个文本文件,这个文件中包含有软链接指向另一文件的位置信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的原来的文件实体。使用ln -s。

    下面做几个实验:

    首先我们在普通用户guixian001的家目录创建guixian001文件。使用vi加入Hello!I am guixian001!内容。

    [guixian001@localhost ~]$ touch guixian001
    [guixian001@localhost ~]$ vi guixian001  #添加内容Hello!I am guixian001!

     创建guixian001的硬链接文件guixian001_hard_link,和软链接文件guixian001_soft_link。使用ls -li查看。

wKioL1VVRRXgxdP0AAKuYGgjhGE895.jpg

    需要注意的是,我们可以看到guixian001和guixian001_hard_link最前面的数字相同,这个就是我们刚刚说的Inode所以节点。也就是说硬链接和源文件是Inode是相同的。在第三列可以看到数字2,就是说这个文件被链接了2次(guixian001和guixian001_hard_link加起来2次)。

    链接总结:

    ⒈删除软链接guixian001_soft_link,实际软链接就相当于一个快捷方式文件,所以删除软链接对guixian001,和guixian001_hard_link没有影响。

    ⒉删除硬链接guixian001_hard_link,对guixian001,guixian001_soft_link没有影响。

    ⒊删除原文件guixian001,对硬链接没有影响,实际上这个文件还没有真正删除(还存储在硬盘中),软链接会失效(目标没有没有了)。截图如下:

wKiom1VVRgrAIq6iAAED8ziXOXE844.jpg

    ⒋同时删除原文件guixian001和硬链接文件guixian001_hard_link,这个文件会真正删除。

References:

    1.老男孩Linux教程

Author:Chenguixian(guixian001)