先说软连接,一个认为这个比较好理解,一个也是因为柿子专挑软的捏啊,哈哈,创建 一个软连接的命令: 【ln -s 源文件名 软连接文件名】,使用ls命令查看文件信息可以验证一下,对文件和目录都可以创建软连接,在网上看到很多人说快捷方式这个比喻,个人认为比较形象,创建一 个软连接就是给指定的文件创建了一个快捷方式,里面只记录一个源文件的路径,使用的时候其实就是间接的使用源文件,不考虑具体的实现,从使用的层面上就这 么简单。如果源文件删除了,这个软连接也就没有什么用了,因为他记录的路径下面已经没有文件或文件夹了,效果就和windows下面的exe都没有了,你 双击快捷方式的效果一样,正因为软连接只是记录一个路径,所以他可以跨文件系统使用。

  再说硬连接,创建一个硬连接的命令: 【ln -d 源文件名 硬连接文件名】。在Linux里面访问的每个文件都有一个inode结点的东西,在这个东西里面有一个连接计数,软连接的时候不涉及这个东西,如果对一个 文件创建一个硬连接,则这个文件对应的inode的连接计数就加1,这个时候其实这个inode对应的文件有两个名称可以进行访问,这两个名称现在是一样 的,你可以使用任意一个继续创建硬连接,所以创建的硬连接和源文件是一样的,共享同一个inode,如果删除了一个则连接计数就减1,删不删除文件是根据 连接的计数值来确定的,如果为0了,就删了,否则,删除只是连接计数减1。硬连接不能跨文件系统创建,并且只能对文件创建,不能对目录创建硬连接。