Linux 硬链接和软链接

硬链接:ln 源文件 新建名

指向同一个文件,并独立存在。当源文件删除不会影响硬链接文件的读取。不能跨文件系统和目录建连接。

例:新建一个文件吧!名字test 硬链接为t1。

查看文件,发现2个文件最前的数字是一样的,而这一窜数字称之为inode。

 Indoe包含了里面存储了此文件的属性,包括文件大小、所有者、以及访问权限等等。

所以2个inode相同很明显是一个文件(区别于软连接)。还有权限后的数字,就代表了硬链接的份数。每次对t1或test文件添加一个硬链接,数值在原有的基础上加1。

 可以认为是备份数,但与备份区别的是,硬链接的每份都是有关联的,在任何一份硬链接上文件做修改,就会对每份硬链接做相同的改动。

软连接:In –s 源文件 新建名

 相当于windows中的快捷方式依赖源文件。如源文件删除,软连接则无法执行。可以跨文件系统和目录建连接。

 例:当我们挂在光驱时,常常会打入 #mount /dev/cdrom /mnt/cdrom.但只要#mount,就会发现,其实挂载的并不是/dev/cdrom,而是/dev/hdc;

这时你就可以想到了,可能是软连接的缘故,文件指向的是hdc

注意权限,虽然软连接指向源文件,但并不会和源文件的权限相同。一定会出现这问题,或许你会将软连接的权限改为700时。并不代表只有文件所有者能访问。一切还是要以源文件的权限为准。(如果真要问我软连接的权限是干嘛用的,这个嘛。。再议。。。。。。。。)。

 注意inode,并不是相同的,所以这就是和硬链接的本质区别。

总结

 硬链接不能跨文件系统和不能对目录创建,而软连接可以。

 硬链接的inode是相同的,而软连接是不同的。

 硬链接每新建一次,值就会在原有基础上加1。而软连接则没此项。

 不要被软连接的权限迷惑,最终还是要以源文件的权限为准。

你可能感兴趣的:(linux)