软链接(Soft Link)也称为符号链接(SymbolicLink)。Linux里的软链接文件就类似与Windows系统中的快捷键方式。Linux里的软链接文件实际上是一个特殊的文件,文件类型是l。软链接文件实际行可以理解为一个文本文件,这个文件中包含有软链接指向另一源文件的位置信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的源文件实体。
ln -s 源文件 目标文件
软链接的创建:
执行命令“ln -s 源文件 链接文件”,即可完成创建软链接。
误区:创建软链接源文件是需要存在的,要创建的软链接文件是不能存在的,是要用ln 命令创建。
ln -s源文件 目标文件
目录的软链接用的很多 硬链接几乎不怎么用
1)软链接类似windows的快捷方式(可以通过readlink查看其指向)
2)软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。
3)删除源文件,软链接文件依然存在,但是无法访问指向的源文件路径内容了。
4)失效的时候一般是白字红底闪烁提示。
5)执行命令"ln-s 源文件 软链接文件",即可完成创建软链接(目标不能存在)
6)软链接和源文件是不同类型的文件inode号也不相同。
7)删除软链接文件是可以用rm命令。
硬链接是指通过索引节点(inode)来进行链接。在Linux(ext2,ext3,ext4)文件系统中,保持在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Index Inode)简称Inode,即在系统中文件的编号。
在Linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。这种情况的文件就称为硬链接。提示:硬链接文件就相当于文件的另外一个入口。硬连接的作用之一是允许一个文件拥有多个有效路径口(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件存储,存储中的快照功能就是应用了这个原理,增加一个快照就多了一个硬链接)。为什么一个文件建立了硬链接就会防止数据误删呢?
因为文件系统(ext2)的原理是,只要文件的索引节点(InodeIndex)还有一个以上的硬链接。只删除其中一个硬链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其他的链接(即数据文件实体并未被删除),只有当文件的最后一个链接被删除后,被删除文件的数据块及目录的链接才会被释放,空间被新数据占用并覆盖。此时,数据就再也无法找回了。也就是说,在Linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。
硬链接原理图:
ln 源文件硬链接文件
目录不允许做硬链接
ls -a 显示隐藏文件
以.开头的文件代表隐藏文件
..代表上上级目录(因为他们具有相同的inode)
具有相同inode节点号的多个文件是互为硬链接文件。
删除硬链接或者删除源文件任意之一,文件实体并未被删除。
只有删除源文件及所有对应的硬链接文件,文件实体才会被删除。
当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。
硬链接文件就是文件的另外一个入口(相当于超市的前门,后门一样)。
可以通过给文件设置硬链接文件,来防止重要文件被误删。
通过执行命令“ln 源文件硬链接文件” 即可完成创建硬链接。
硬链接文件可以用rm命令删除。
对于静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link)文件就被删除。i_link的查看方法(ls -l 结果的第三列)
1、编译软件时制定版本号(/application/apache2.24)访问时希望去掉版本号(/application/apache),可以设置软链接到编译的路径。所有程序都访问软链接文件(/application/apache),当软件升级高版本后,只需删除链接文件重建到高版本路径的软链接即可(/application/apache)
2、企业代码发布时(PHP程序),需要把所有代码传到一个新发布的临时目录或者新的站点目录。发布时要么使用mv,也可以重建软链接指向到这个新的临时目录或者新的站点。
3、不方便目录移动,使用ln -s
描述Linux下软链接和硬链接的区别
1)默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。
2)硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。
3)ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。
4)删除软链接文件,对源文件及硬链接文件无任何影响;
5)删除文件的硬链接文件,对源文件及链接文件无任何影响;
6)删除链接文件的源文件,对硬链接无影响,会导致其软链接失效(红底白字闪烁状)
7)同时删除源文件及其硬链接文件,整个文件才会被真正的删除。
8)很多硬件设备中的快照功能,使用的就类似硬链接的原理。
9)软链接可以跨文件系统,硬链接不可以跨文件系统。
企业面试答题必胜思路:
1)介绍软硬链接的概论。
2)对于文件的软硬链接区别。
3)对于目录的软硬链接区别。
本文出自 “徐亮伟” 博客,转载请与作者联系!
原文地址:http://liangweilinux.blog.51cto.com/8340258/1684294