1. 硬链接类似一个指针,它指向文件索引节点,系统并不为它重新分配inode,只是把原始文件对应的inode的连接数加1

    • 可以通过ln file2 file2hard来建立硬链接,然后通过ls -li来查看它们的inode信息:

    • 13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2

      13059 -rwx - - - - - - 2 longcheng longcheng 57 8月 5 16:40 file2hard

    • 可以看出,file2和file2hard的inode一样,不过它们的连接数都变成了2

    • 你可以删除其中任何一个,如rm file2 ,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。

    • 硬链接的限制::(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。(3)不能对目录进行连接



  2. 软链接也即符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。

    • 可以通过ln –s file1 file1soft来建立软链接,软链接原文件和链接文件拥有不同的inode号,表明他们是两个不同的文件,如下:

    • 13058 -rwx - - - - - - 1 longcheng longcheng 48 8月 5 16:38 file1

      13061 lrwxrwxrwx 1 longcheng longcheng 5 8月 5 16:58 file1soft->file1



    • 由于软链接文件中包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了

    • 另外,使用软链接,系统分配额外的空间用于建立新的索引节点和保存原文件的路径。