linux学习——软链接、硬链接与复制的区别--总结

1、语法:

硬链接:ln source source1 
软链接:ln -s source source1 
复制:cp source source1

2、含义:

硬链接:硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件。

-------做过测试:硬链接一个文件后,整个文件夹的大小并没有发生改变。

-------修改源文件时,无论是是软连接,还是硬连接,文件内容都会跟着改变。

-------修改软链接的内容时,源文件的内容也同步改变,因为软链接是快捷方式嘛,windows下我们就是通过快捷方式修改源文件的,一样的道理。

-------修改硬链接的内容时,源文件内容也改变,因为硬链接本身就是一个文件。参考该文

-------硬链接的话,删除源文件,对硬链接没有影响。

软链接:通过软链接建立的链接文件与原文件并不是同一个文件,相当于原文件的快捷方式。具体理解的话,链接文件内存储的是原文件的inode,也就是说是用来指向原文件文件,这两个文件的inode是不一样的。

复制:相当于将原文件进行一个拷贝,为另一个全新的文件,与原文件没有关系了。修改任何一个都不会影响另一个。

3、特点:

1)硬链接的特点是这样的:

它会在链接文件处创建一个和被链接文件一样大小的文件,类似于国外网站和国内镜像的关系,
硬链接占用的空间和被链接文件一样大(其实就是同一片空间
修改链接文件和被链接文件中的其中一个,另外一个随之同样发生变化

------------类似C++中的引用。
硬链接的对象不能是目录,也就是说被链接文件不能为目录
硬链接的两个文件是独立的两个引用计数文件,他们共用同一份数据,所以他们- 的inode节点相同
删除硬链接中的任意一个文件,另外一个文件不会被删除。没有任何影响,链接文件一样可以访问,内容和被链接文件一模一样。
2)软链接的特点:

软连接的链接文件就是一个基本单元大小的文件,一般为3B,和被链接文件的大小没有关系
软链接的链接文件中存储的是被链接文件的元信息,路径或者inode节点
软连接的连接文件是一个独立的文件,有自己的元信息和inode节点
删除软链接的链接文件,被链接文件不会受到任何影响
删除软链接的被链接文件,链接文件会变成红色,这时打开链接文件会报错,报找不到被链接的文件这种错误
软链接可以链接任何类型的文件,包括目录和设备文件都可以作为被链接的对象
3)复制的特点:

复制产生的文件是一个独立的文件,有自己的元信息和inode节点
删除或修改复制文件,对原文件不会产生任何影响,反过来也是一样的
复制可以复制文件,也可以复制目录
4、理解:

硬链接文件是一种引用计数的运用,软连接可以理解为Windows下面的快捷方式。

A硬链B 删除B后A依然存在,且可用。 
A软链B 删除B后A存在,但不可用了(相当于Windows下快捷方式指向的目标不存在了)

硬链接只能用于文件,不能用于目录;软链接可以为目录建链接。

硬链接不能跨文件系统操作。
————————————————
版权声明:本文为CSDN博主「geerniya」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/geerniya/article/details/79093301

你可能感兴趣的:(linux)