您的位置:首页 > 运维架构 > Linux

Linux下的软硬链接

2016-12-30 17:18 162 查看
一、LInux链接概念

Linux链接分为符号链接(Symbolic Link)也叫软链接和硬链接(Hard
Link)两种,默认情况下,ln命令会产生硬链接。

二、软链接

1.创建软链接的命令:ln -s sourcefile newfile

2. 简介

软链接又叫做符号链接,软链接文件有类似于Wondows的快捷方式。它实际上是一个特殊的文件。

3.软链接的特点

3.1 可以链接任何文件或者目录,还可以链接不同文件系统的文件或者目录

3.2 要链接文件时,新文件是必须存在的,当源文件不存在时,建立的链接是一个空链接。空链接文件也可以操作,而且对空链接操作,例如,emptyfile是空链接,对emptyfile进行vim emptyflie,并写入一些字符时保存时,系统就会自动生成一个emptyfile对应的源文件。空链接就会变成软链接。

3.3 软链接相当于windows系统的快捷方式,windows系统下改变快捷方式,例如对快捷方式重命名等不会改变源文件的内容。而在linux系统下,改变newfile时,sourcefile也会同步改变。当然,改变sourcefile也会引发newfile的同步改变。

3.4 删除newfile时,不会对sourcefile产生影响,但是删除sourcefile时,newfile就会变成一个空链接。当然,再对newfile写入内容,系统又会生成newfile对应的源文件。见3.2。

验证:



当删除原始文件f1时,软链接文件无效。

4.不足

因为链接文件包含原文件的路径信息,所以当原文件从一个目录下移动到另一个目录下,再访问链接文件,系统就找不到了。

三、硬链接

1.创建硬链接的命令:ln sourcefile newfile

2.简介

由于Linux下的文件是通过索引节点来识别文件的,硬链接可以认为是一个指针,是一个指向文件索引节点的指针。系统并部位它重新分配inode,每添加一个硬链接,文件的链接数就加一。

说到这里,就不得不提一下inode

inode是Unix内部用于描述文件特性的数据结构。我们通常称inode为文件索引节点Index Node(信息节点)。inode含有文件系统关于文件的大部分重要信息。在Unix创建文件时,同时会创建大量的inode节点。通常,文件系统磁盘空间中约百分之一的空间分配给了inode表。inode指的是数据结构,而索引编号实际上是inode的标识编号。

inode表包含一份清单。列出了对应文件系统的所有文件inode编号,当用户搜索或者访问一个文件时,Unix系统通过inode表查找到相对应的inode编号。在找到inode编号后,相应的命令才能访问该inode,并对它进行访问等操作。

3.特点

3.1 sourcefile和newfile相互影响,同步执行。

3.2 建立硬链接后,sourcefile和newfile的连接数都为2,当删除sourcefile文件后newfile文件不受影响,只是连接数减一,从链接文件变为普通文件。因为删除一个文件,实际上是删除inode信息。当链接数为0时,才会彻底删除该文件。也就是说,文件真正删除的条件是与之相关的所有硬链接文件都被删除。

3.3 硬链接不占用磁盘空间。

3.4 硬链接只作用于文件。

验证:





4.不足

4.1 不允许给目录创建硬链接。

4.2 只有在同一文件系统中的文件才能创建硬链接。

为什么不允许给目录创建硬链接?

系统在遍历文件夹的时候,假设可以创建目录的硬链接,则因为系统不能识别出该硬链接是链接还是文件本身。这样,系统就会无限的递归下去。而软链接可以被系统识别,就不会出现这样的问题。

为什么只有在同一文件系统下的文件才能创建硬链接?

不同的文件系统可能具有相同的inode编号,假设可以在A系统创建B系统文件的硬链接,这是,假设B系统的文件B1的硬链接文件为A系统的A1。那么,理论上,他们具有相同的inode编号,如111,但是,假设此时A系统中本来就可能存在inode号为111的文件。假设此时想访问inode号为111的文件,那么久不知道到底是访问A系统的文件还是访问B系统的文件。

总结:

软硬链接的相同点与区别:

相同点:1.链接文件newfile在创建前都必须为空。

2.newfile和sourcefile的改变读会影响对方。

不同点:1.软链接可以跨文件系统,硬链接不可以。

2.软链接可以对目录链接。

3.软链接可以对一个不存在的文件进行链接。

4. 硬链接通过inode访问文件,软链接不直接使用inode作为文件指针,而是使用文件路径名作为指针。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: