软链接就像是windows里面的快捷方式,
软链接有自己独立的inode,这说明软链接是一个独立的文件,有自己的inode属性,也就说明它有自己的数据块,这个数据块保存的是文件的所在路径 + 文件名。
我们可以看到这个test.cpp的路径藏的很深,我们想要在某一个路径里面找到并且执行是很困难的,因此我们需要创建一个快捷方式,也就是软链接。
这样我们就可以直接找到了。
一个文件的一个或多个文件名。
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
例如我们要寻找jdk装在了Linux的哪个地方。
我们知道,Linux下命令也是对应了一份一份的文件的。利用这一点,我们可以进行追溯。
可以看到我们使用了安装jdk才可以使用成功的命令,java -version,这说明这个命令跟jdk是有关系的,jdk是一个文件,它在jdk内部。
因此我们可以使用which命令,查找命令的所在文件夹。
这个Java可能只是一个快捷方式,是一个软链接,不是真正的jdk所在地。因此我们查看一下这个目录。
果真,这是一个软链接,原文件是绿色字体的路径所在地。
然而这个原文件仍然可能是一个软链接,所以我们再次追溯一次。
可以看到的确如此。我们这次成功的找到了java命令的所在地。
jre是包含在jdk里面的,所以这个就是jdk的路径了。