软链接与硬链接
在 Linux 下面的链接文件有两种,一种是类似Windows的快捷方式,可以让你快速的链接到目标文件(或目录),这种称为软链接(符号链接,symbolic link); 另一种则是通过文件系统的inode链接来产生新文件名,注意这里说到的是新文件名而不是产生新文件!这种称为硬链接(实体链接,hard link)。
- 软链接又被称为符号链接(Soft Link,Sumbolic Link),通过
ln -s 源文件名或目录名 目标文件名或目录名命令格式创建的,这类文件的文件属性是l,后面的文件名为文件名或目录名 -> 源文件名或目录名。 - 硬链接(Soft Link,Sumbolic Link),通过
ln -s 源文件名或目录名 目标文件名或目录名这种命令格式创建的,创建的文件为同一个inode记录的不同名称的文件。
假设有一个文件linksourcefile,它有一个软链接和一个硬链接,使用 ll -ih linksourcefile* 查询这三个文件的文件属性如下图:

可以看到硬链接的文件和源文件的文件属性保持一致都是普通文件,它们都是同一个inode,文件大小也一致,同时源文件和硬链接文件的硬链接个数都显示为2。软连接的文件属性由普通文件的 - 变成了链接文件的 l ,文件权限也从原来文件的644变成了777。
使用 ln --help 查看 ln 命令的帮助信息,里面列举了 ln 命令的四种格式的用法,里面也说明了创建连接文件的使用,目标名称不能已经存在。

硬链接知识小结
- 使用硬链接设置链接文件时,磁盘空间与inode的节点号都不会改变;
- 源文件和硬链接文件具有相同的inode节点号,可以理解为同一个文件的不用索引入口;
- 硬链接文件可以用
rm命令来进行删除,删除硬链接文件或者源文件两者任意之一,文件的实体并没有被删除,如果需要彻底删除实体文件必须硬链接和源文件两者皆删除才可以; - 硬链接仅能在单一文件系统中进行,不能够跨文件系统。而且不能跨系统分区或跨硬盘进行硬链接;
软链接知识小结
- 软链接类似于window系统的快捷方式,mac系统的替身;
- 软连接相当于正在一个文本文件中存放了源文件的路径,指向源文件的实体;
- 删除软连接对源文件没有任何的影响;
- 删除源文件会令软链接失效,同时出现失效的提示;
- 软链接和源文件不是同一种类型的文件,一个为普通文件,一个为链接文件,且inode节点号也不相同;
- 可以用 rm 命令删除掉软链接的链接文件;
链接的整体总结
- 删除软链接文件对源文件及硬链接文件没有影响
- 删除硬链接文件对源文件和软链接文件没有影响
- 删除源文件,对硬链接文件没有影响,但是会导致软连接文件失效,且查看软链接文件属性时显示为红字告警(Debian系的发行版本)或者白字红底闪烁(红帽系的发行版本)