一直没有深刻了解过连接这块的知识,昨晚有个朋友问我这问题,一会儿激发了个人兴趣。今天早上过来看了看鸟哥的书而后在stackoverflow上找了一番,感受本身如今的理解到位了,起码这样理解容易记忆。先来作个实验,在咱们的用户目录下,创建一个测试文件夹,而后新建一个文件,并建立这个文件的软连接和硬连接。以下: html
vim file1 #新建文件
ln -s file1 file1.soft #软连接
ln file1 file1.hard #硬连接
紧接着,我偶们看下这三个文件的具体信息: node
咱们发现软连接的文件属性是l,而硬连接和文件同样,都是-,而且软连接的文件比较小,而硬连接文件大小和原文件同样。紧接着,咱们修改下file1文件,而后接着看文件信息: vim
咱们发现,修改完file1后,file1.hard的修改时间也同步发生变化,可是file1.soft的文件时间信息没有发生变化。咱们再修改下file1.soft文件,而后查看文件信息,一样发现file1和file1.hard文件的时间信息发生了改变,而file1.soft文件时间信息仍然没有改变。道理先不讲,继续来。 测试
Linux童鞋他只认识数字,其余的啥都不懂,因此在使用Linux的时候,咱们不少地方都对应一个数字,好比进程号、权限值等等,文件在Linux中一样也是经过数字来标识的,这个数字就叫文件的索引节点(inode),每一个文件都有一个惟一的索引节点。咱们能够经过“ls -i”来查看文件的inode节点信息,以下: spa
咱们惊奇的发现file1和file1.hard的inode节点值是同样的,这个时候不知道你是否是恍然大悟,由于他们的inode值同样,那Linux在更新文件的时候会根据inode去找到相应的文件而后更新,而每次更新都会找到两个文件。 .net
最后来一句话总结软连接和硬连接: unix
软连接:至关于快捷方式,能够为全部文件创建软连接。 code
硬连接:至关于给文件起了个别名,连接文件和源文件实际上是同一个文件。不能用于目录。 htm