真正找到磁盘上文件的并不是文件名,而是inode。 其实在linux中可以让多个文件名对应于同一个inode。
命令:
软连接:ln -s 原文件名 新文件名
硬链接:ln 原文件名 新文件名
删除链接文件:unlink 文件名
执行上面两条命令都会再路径中得到新的文件,但这并不是常规的文件(下面会讲到),如下图所示:
可以看出,软连接 链接数不变;硬链接得到的新文件与原文件相同,得到的新文件inode不同且链接数+1.那么软硬链接的区别就是是否具有独立的inode。
- 软连接得到的文件可以当成独立的文件看待
- 建立硬链接没有新增文件!因为没有给硬链接分配独立的inode,只是在指定路径下,新增文件名和inode编号的映射关系。有新的文件名映射到一个inode硬连接数也会+1
对myfile.txt进行操作时,hard_file.txt的属性也发生了变化,内容也与myfile.txt相同。
当把原文件删除时,软连接得到的新文件在闪烁,新文件是没有被删除的,软连接是一个独立的文件,内容里面保存着它所指向的文件路径也就是myfile.txt的文件路径。而硬链接得到的新文件除了链接数-1以外没有别的变化,里面的内容也没有变化。这是因为该文件还是与原来的inode相匹配。由上面可以得出一个结论 ,在硬连接数变为0时,一个文件才真正被删除。
当再创建一个myfile.txt文件时,软连接又回来了,断开软连接时,原文件不受影响,如下图:
简而言之,软连接其实就相当于windows下的快捷方式,从而快速的找到别的文件。
不允许用户自己给目录文件建立硬链接,软链接是可以的。
Modify时间:最后修改内容的时间,修改了内容,文件大小(属性)就变了,change时间就变了
Change时间:最后修改文件属性的时间
Access时间:访问文件的时间,不会一直变