在Linux系统中有两种链接模式:软链接 硬链接
软链接(符号链接) ln -s
软链接的实现方式是实际上只是存了一份文件路径,可以将其理解为创建了一个快捷方式。
硬链接 ln
硬链接是指通过索引节点来进行链接。在文件系统中每个文件都有一个文件编号(可以通过 ls -li 来查看编号),这个编号指向了存放在系统上的元数据。而硬连接就是允许同一份原数据,拥有多个有效路径。
在实现方式上,两者也有很多不同。
硬连接只可以对文件进行链接
软链接可以对目录和文件进行链接
硬链接的使用方式
ln 文件名 路径
软链接的使用方式
ln -s 相对路径/文件名 路径
因为软连接只是存了一个路径,所以在建立时要让链接能找到源文件,如果拿不准相对路径,直接使用绝对路径是一个好选择。
而硬链接指向的是存放在系统里的元数据,不需要使用路径。他也可以当成一个源文件来看。
当源文件被删除时
软链接的源文件被删除时,软链接还存在,不过会变成死链接。没用了
硬连接就有意思了,当元数据有一个或多个文件指向他时,元数据就不会删除。当创建硬链接后,两个文件因为他们都是指向的元数据(文件编号是一致的)。所以其中一份文件的删除并不会造成什么影响。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。