【导语】“紫梦林碧”通过精心收集,向本站投稿了2篇linux软链接和硬链接详解及扩散式学习的总结,以下是小编为大家准备的linux软链接和硬链接详解及扩散式学习的总结,欢迎大家前来参阅。
篇1:linux软链接和硬链接详解及扩散式学习的总结
linux软链接和硬链接详解及扩散式学习的总结
所谓链接,就是给文件或和目录(文件夹)再次创建一个链接,可以通过访问使用此链接的方式达到访问该文件或这目录的目的,而建立链接的目的在我看来是方便人们使用操作系统。
1.软链接:顾名思义,这种链接方式没有“真才实料(指最下方存储真正数据的数据块)”,是“软”的。这种链接方式只是保存要访问文件或者目录的'绝对路径(所以软链接又称字符链接)。可以方便理解为windows中的快捷方式,删除原文件后会对此软链接(快捷方式)产生影响。软链接可以在任何地方建立,只要是同一系统即可,因为软链接的inode与原文件的inode不同。
2.硬链接:与软链接相比较,硬链接多了一些真才实学,他会关联数据块,而不只是简单的一个绝对路径。建立的硬链接与原文件的inode相同,因为必须在同一分区中才可以建立链接。例如 A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,A和B对文件系统来说是完全平等的。如果删除了其中一个,对另外一个没有影响。
大家有没有想过,为什么原文件删除对硬链接无影响?还可以取到数据块?
有以下三点解释:
1.每增加一个文件名,inode节点上的链接数增加一,每删除一个对应的文件名,inode节点上的链接数减一,直到为0,inode节点和对应的数据块被回收。
2.文件和文件名是不同的东西,rm A删除的只是A这个文件名,而A对应的数据块(文件)只有在inode节点链接数减少为0的时候才会被系统回收。
3.我们用的ls cat等查看文件是否存在的命令是从超级块或者目录block中得到文件的信息。而不是从数据块中取,不要陷入这个误区,据一个最简单的例子,一个文件可能是多个数据块存储的,ls等命令有如何会在rm删除了文件名之后,还可以知道文件存储的分散数据块?
篇2:Unix系统中的硬链接和软链接详解
这篇文章主要介绍了Unix系统中的硬链接和软链接详解,本文讲解了unix硬链接、UNIX软链接、UNIX硬链接与软链接区别等内容,需要的朋友可以参考下
简单的说连接就是可以指向文件系统中其他位置的一个快捷方式,它非常有用,可以避免键入很长的路径名或cd深入到多个文件夹中,用过Windows系统桌面的程序图标其实就是一个快捷方式,大家也可以这么理解,不过两者却存在某些重大的差别,在unix中的连接形式分为两种,分别为硬链接和软链接,
unix硬链接
硬链接是一个目录条目,它指具有同一个i-node(硬盘上的物理位置)的另一个文件。事实上只存在一个文件,指向硬盘上同一个物理数据的只有两虞多个目录条目。
代码如下:ln /usr/local/etc/rc.d/nginx nginx
使用该命令在当前目录下创建一个名为nginx的文件,该文件代表硬盘上的另一个地址/usr/local/etc/rc.d/nginx。现在利用目录当前目录中的nginx就可直接访问同名文件了(当然已经创建了该连接,如果我们想编辑nginx这个文件时,我们只需要执行“vi nginx”,而不需要执行“vi /usr/local/etc/rc.d/nginx”这么长的文件路径了,当然如果想执行时也无需要输入比较长的路径了)。
执行ls -l nginx之后会发现硬件链接文件权限和原文件完全一样,如果直接修改硬链接的文件权限,那么相应的原文件权限也跟着会修改。
简单的说,文件硬链接文件与原文件大小、修改时间、权限等都会相同。
当执行rm删除掉硬链接文件,那么链接数将会被减去1,以作出变动,不过文件仍然存在,因为还有另一个连接指向硬件上的同一个物理位置。只有其所有硬链接都被删除,并且链接数被减至0时,文件才会被删除。
脚本之家注:UNIX硬链接有两大局限,不能用于连接目录,也不能跨越文件系统的范围。
UNIX软链接UNIX软链接也称符号连接或symlinks,相当于Windows系统中的快捷方式。和硬链接不同的是,软链接是一个独立的文件,在硬件上有属于自己的i-node。软链接只是一个文件,其中包含指向另一个文件的指针,
用ln -s命令即可创建一个软链接,之后可使用ls -l -b查看文件属性。
代码如下:ln -s /etc/rc.conf a
ls -l -b
如果想编辑/etc/rc.conf时,就可直接使用软连接编辑,而不需要输入那么长的路径了,如直接执行“vi a” 等同于“vi /etc/rc.conf”。如果在编辑时提示“No such file or directory(找不到该文件或目录)”此类的错误,但在执行ls命令之后,又可找到该文件,则表明你使用了已成为空链接的软链接,也就是说目标文件或目录不存在。,用ls -l命令可查看文件是否为软链接。如果是软连接,可查看连接软件指向的文件或目录是否存在。
脚本之家注:无法是目标文件移动走了还是删除了,软删除都将失效。
UNIX硬链接与软链接区别1、访问权限并不代表对真实文件的访问权限,也不能更改软连接的属性(访问权限拥有都和工作组等)。这些操作只能在真实文件中进行。
2、连接数实际上只有一个,因为软件链接是一个指向其他文件的真实文件,它不只是一个指向硬盘上某个位置的目录(硬连接则是)。
3、文件大小不确认,软连接列出的大小是其中包含的连接文件大小,而不是它指向那个真实文件的大小。
4、文件修改时间也不确切。软连接告诉我们的是连接最近一次被修改的时间,并没有指出连接所指文件的最近一次修改时间。
5、文件名指出,->之后是该文件所指的真实文件的路径名称。
6、文件的删除,和硬连接不同的是,如果删除了软连接所指的原始文件,那么该文件的数据块也会被删除,而连接也会变为空连接。不过,如果用rm命令来删除连接,原始文件则会安然无恙。
7、i-node的占用,和软连接相比,硬连接的好处是它们不占用i-node。这似乎微不足,但当硬盘上可用的i-node数量有限时就不一样了。如果硬盘上有无数小文件,这些小文件可能会用光硬盘上所有的i-node,即使硬盘上还有许多剩余空间,用光i-node之后再也不能创建新文件了,除非删除某些文件,释放部分i-node。
关于连接使用的选择,对于连接的使用最常用的用法是,硬连接用于原始文件和目标文件位于当前同一个文件系统。好处是能提供真实文件的有关信息,在原始文件被删除或移动时,也不会成为空连接。但是,如果需要连接目录或位于另一个文件系统的文件时,就必须采用软连接。
★ DEDECMS修改文章TAG 给TAG加链接 去掉TAG字数限制
linux软链接和硬链接详解及扩散式学习的总结(精选2篇)




