linux硬链接和符号连接

linux硬链接与软链接
1.Linux链接概念
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
硬连接的2个限制:
不允许给目录创建硬链接
只有在同一文件系统中的文件之间才能创建链接。 即不同硬盘分区上的两个文件之间不能够建立硬链接。这是因为硬链接是通过结点指向原始文件的,而文件的i-结点在不同的文件系统中可能会不同。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
这就允许符号链接(经常简写为symlinks)指向位于其他分区、甚至是其他网络硬盘上的某个文件

2.通过实验加深理解
[[email protected]]$ touch f1 #创建一个测试文件f1
[[email protected]]$ ln f1 f2 #创建f1的一个硬连接文件f2
[[email protected]]$ ln -s f1 f3 #创建f1的一个符号连接文件f3
[[email protected]]$ ls -li # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1
从上面的结果中可以看出,硬连接文件f2与原文件f1的inode节点相同,均为9797648,然而符号连接文件的inode节点不同。
[[email protected]]$ echo "I am f1 file" >>f1
[[email protected]]$ cat f1
I am f1 file
[[email protected]]$ cat f2
I am f1 file
[[email protected]]$ cat f3
I am f1 file
[[email protected]]$ rm -f f1
[[email protected]]$ cat f2
I am f1 file
[[email protected]]$ cat f3
cat: f3: No such file or directory
通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f3文件无效
3.总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).删除符号连接f3,对f1,f2无影响;
2).删除硬连接f2,对f1,f3也无影响;
3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

时间: 2024-10-25 00:51:14

linux硬链接和符号连接的相关文章

linux 硬链接与软链接

Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. 硬连接指通过索引节点来进行连接,硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能.其原因如上所述,因为对应该目录的索引节点有一个以上的连接.只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放.也就是说,文件真正删除的条件是与之相关的所有硬

Linux 硬链接和软链接的总结

描述: 链接--是一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法.在Linux中分为软链接(hard link)和硬链接(soft link),其中软链接又称为符号链接(symbolic link). 索引节点:在linux系统中对文件的管理本质上是通过其索引节点进行管理的.从系统的角度来看,文件的索引节点(inode)是文件的唯一标识,它包含了文件系统处理文件所需要的全部信息.实际上存在两种类型的索引节点: 1,内核索引节点(in-core indoe):保存在内存中,在系统中

对linux硬链接和软链接理解

linux系统有有软链接和硬链接两种,所谓软链接类似于windows系统中的快捷方式,源文件如果被删除,软链接将失败.而硬链接则不同,即使源文件被删除,文件依旧存在,这是为什么呢?下面我就为大家简单说明一下其中的原因: 软链接: 这是我画的一张linux存储文件的简易图,软链接的连接道理是,在inode表中,存放指针位置并非是指针,而是存放着一个文件的元数据路径,通过路径找到文件元数据,再找到文件本身.例如:/root/1为原文件,/root/2为软链接文件 第一行为inode号,这两个文件拥有

Linux 硬链接 软连接

情景说明: 有时候在Linux下我们有一个大的工程跟绝对路径相关,现在又想通过eclipse查看源码和修改源码,那么问题来了: 1.如果我们把源码拷贝一份到eclipse工程里面,那么此时修改了某个文件之后还得手动复制到可以运行的原始工程目录下,这样操作很麻烦. 2.如果直接重新把源码部署在eclipse下面,势必要修改很多路径才能让这个工程在新的路径下正常运行 解决办法:创建软连接   ln  -s /xxxxxx/test  workspace/myproject 疑问: 什么是软链接?和硬

(转)Linux硬链接、软链接及inode详解

inode 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512字节(相当于0.5KB). 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block).这种由多个扇区组成的"块",是文件存取的最小单位."块"的大小,最常见的是4KB,即连续八个 sector组成一个 block. 文件数据都储存在"块"中,那么

Linux硬链接、软链接的创建及两者的区别

一.硬链接 链接数就是名字的数量: ln(link) 硬链接,多个相同的inode文件(同分区),多个硬链接文件的存在在硬盘上只占用一个文件的容量. 创建的硬链接是平等的,inode相同,删除某一个互不影响,其他文件仍然可以使用. 硬链接的本质:给一个文件创建多个名字. 创建多个硬链接,观察链接数的变化(+1),链接数是几就是有几个文件名. 同一分区中,同一个inode号必定是一个文件. 原始的文件 [[email protected] testdir]# ll -iman.txt 15 -rw

linux 硬链接与软连接

简                介 在存储设备上,文件或目录包含在一些数据块上.有关某个文件的信息包含在一个 inode 中,它记录了所有者.最后访问该文件的时间.文件的大小.它是否是目录,以及谁可以读取或写入它等信息.inode 编号也称为 文件序列号 ,该编号在特定文件系统内是唯一的.一个 目录条目 包含一个文件或目录的名称,以及用来存储该文件或目录的信息的 inode 的指针. 硬链接 是指向 inode 的目录条目,而 软链接 或 符号链接 是指向另一个目录条目的名称的 inode 的

Linux硬链接和软链接

1.硬链接:文件别名通过前面讲的Linux ext2文件系统,我们知道在目录文件的block中,存放着目录下文件的文件名和对应的inode.可以将多个文件名对应到同一个inode,新建一条文件名链接到某inode号,这就是硬链接. 可以看出,硬链接只是新建了一个文件名,关联到一个已存在的文件.此时,目录下的block多写了一个文件名/inode的数据所以,硬链接没有增加inode和block的耗用. 2.软链接:类似windows中的快捷方式软链接的实质是,创建了一个独立的文件,而读取这个文件时

linux硬链接与软链接

硬链接概念 硬链接(hard link, 也称链接)就是一个文件的一个或多个文件名 硬链接建立起来后,源文件和链接文件同步,修改任何一方文件都会被修改 建立链接可以节省空间,只需维护链接关系,不需要拷贝文件 硬链接和软链接的本质区别 硬链接可认为是一个文件拥有两个文件名;而软链接则是系统新建一个链接文件,此文件指向其所要指的文件 硬链接的局限性 软链接可以跨文件系统:硬链接不可以 软链接可以对一个不存在的文件进行链接:硬链接不可以 软链接可以对目录进行连接,硬链接不可以 软链接克服了硬链接中的局