码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础系列(四)Linux系统软链接硬链接知识

时间:2015-08-13 20:32:11      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:硬链接 软链接 linux系统

 

软链接

软链接(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)对于目录的软硬链接区别。


本文出自 “徐亮伟” 博客,转载请与作者联系!

Linux基础系列(四)Linux系统软链接硬链接知识

标签:硬链接 软链接 linux系统

原文地址:http://liangweilinux.blog.51cto.com/8340258/1684294

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!