Linux系统硬链接和软链接

Linux系统硬链接和软链接

【链接的概念】

在Linux系统中,链接可分为两种:一种为硬链接(Hard Link),另一种为软链接或符号链接(Symbolic Link or soft link)。Ln这个命令就是创建链接文件的命令,默认不带参数的情况下,是代表创建硬链接。

【软链接】

软链接也称为符号链接(SymbolicLink)。Linux里的软链接文件就类似于Windows系统中的快捷方式。Linux里的软链接文件实际上是一个特殊的文件。在软链接中,软链接文件实际上就是一个文本文件,这个文件中包含有软链接指向另一个源文件位置的信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的源文件实体。

总结:

1、  软链接类似windows里的快捷方式,软链接里面存放的是源文件的路径,并且执行源文件。

2、  删除源文件,软链接文件依然存在,但是无法访问指向的路径内容。

3、  执行命令“ln –s 源文件 软链接文件”,即可完成创建软链接。

4、  软链接和源文件是不同类型的文件,也是不同的文件。Inode号不同

5、  rm –f 软链接文件

示例:

使用ln –s创建的是软链接,软链接相当于快捷方式,可以基于文件也可以基于目录

[[email protected] zdw]# ln -s/application/apache2.2.31/ /application/apache 创建软链接文件

[[email protected] zdw]# ll /application/apache   查看软链接文件readlinkapache也可以

lrwxrwxrwx. 1 root root 26 Mar 10 10:27/application/apache -> /application/apache2.2.31/

[[email protected] zdw]# touch /application/apache2.2.31/zdw

[[email protected] zdw]# ll /application/apache/

total 0

-rw-r--r--. 1 root root 0 Mar 10 10:27 zdw

[[email protected] zdw]# ll /application/

total 8

lrwxrwxrwx. 1 root root   26 Mar 10 10:27 apache ->/application/apache2.2.31/

drwxr-xr-x. 2 root root 4096 Mar 10 10:27apache2.2.31

默认链接有效是浅兰色的,如果链接失效是红色闪的

【硬链接】

硬链接是指通过索引节点(Inode)来进行链接。在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Inode Index)简称Inode,即在系统中文件的编号。

在Linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。这种情况的文件就称为硬链接。硬链接的作用之一是允许一个文件拥有多个有效路径(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件存储,如netapp存储中的快照功能就应和了这个原理,增加一个快照就多了一个硬链接)。为什么一个文件建立了硬链接就会防止数据误删呢?

因为文件系统(ext2)的原理是,只要文件的索引节点(Inode Index)还有一个或一个以上的硬链接。只删除了其中一个链接(即仅仅删除了该文件的链接指向)并不影响索引节点本身和其它的链接(即数据文件),只有当文件的最后一个链接被删除后,此时如果有新数据要存储到硬盘上时或者系统通过类似fsck做磁盘检查的时候。被删除文件的数据块及目录的链接才会被释放,空间被数据占用并覆盖。此时,数据就再也无法找回了。也就是说,在linux系统中,删除文件(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。提示:硬链接就相当于文件的另一个入口。

总结:

1、  硬链接文件是具有相同inode节点号的不同的文件名。

2、  删除硬链接文件或者删除源文件之一,文件实体并末被删除。

3、  只有删除了源文件及所有对应的硬连接文件,文件实体才会被删除。

4、  当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘会做fsck检查的时候,数据也会被回收。

5、  硬链接文件是文件的又一个入口。

6、  可以通过给文件设置硬链接文件,来防止文件被误删。

7、  能过执行命令“ln 源文件 硬链接文件”,即可完成创建硬链接。

8、  rm –f删除硬链接文件

示例:

使用ln创建硬链接。可以看到节点数是相同的

[[email protected] zdw]# ln zdw.txt a

[[email protected] zdw]# ln a b

[[email protected] zdw]# ls -li

total 16

131074 drwxr-xr-x. 2 root root 4096 Mar 1010:39 123

131076 -rw-r--r--. 3 root root   27 Mar 9 17:40 a

131076 -rw-r--r--. 3 root root   27 Mar 9 17:40 b

131076 -rw-r--r--. 3 root root   27 Mar 9 17:40 zdw.txt

这样源文件删除了,数据不丢

[[email protected] zdw]# echo 123 >zdw.txt  往文本里插入123

[[email protected] zdw]# cat zdw.txt

123

[[email protected] zdw]# rm -f zdw.txt   删除源文件

[[email protected] zdw]# cat a

123

二个一起做个文件演示

可以看出,硬链接节点号相同1835012,链接数硬链接是2,软链接是1

[[email protected] zdw]# mkdir /test/zdw -p

[[email protected] zdw]# cd /test/zdw/

[[email protected] zdw]# touch zdwfile

[[email protected] zdw]# ln zdwfilezdw_file_hard_link

[[email protected] zdw]# ln -s zdwfilezdw_file_soft_link

[[email protected] zdw]# ls -li

total 0

1835012 -rw-r--r--. 2 root root 0 Mar 1014:25 zdwfile

1835012 -rw-r--r--. 2 root root 0 Mar 1014:25 zdw_file_hard_link

1835013 lrwxrwxrwx. 1 root root 7 Mar 1014:26 zdw_file_soft_link -> zdwfile

下面示例可以看出,目录可以创建软链接,但是不能创建硬链接,对于目录软链接,实际厂景中经常用到。

[[email protected] zdw]# mkdir zdwdir

[[email protected] zdw]# ln zdwdirzdw_dir_hard_link

ln: `zdwdir‘: hard link not allowed fordirectory

#目录不能创建硬链接,硬链接要求分区相同,不同分区就算节点号相同,也不是一个东西

[[email protected] zdw]# ln -s zdwdirzdw_dir_soft_link

[[email protected] zdw]# ls -li

total 16

131077 drwxr-xr-x. 2 root root 4096 Mar 1014:38 zdwdir

131078 lrwxrwxrwx. 1 root root    6 Mar 10 14:39 zdw_dir_soft_link ->zdwdir

上图中zdwdir节点是2是因为目录

..上一级目录

.当前目录

由于zdwdir和其自身目录下的点号互为硬链接文件,因此节点号相同,所以zdwdir的链接数是2

同理..是上一层目录,和zdw节点号相同

时间: 2024-10-27 06:47:17

Linux系统硬链接和软链接的相关文章

linux系统 硬链接和软链接

背景: 当几个用户同在一个项目里工作时.经常须要共享文件. 假设一个共享文件同一时候出如今属于不同用户的不同文件夹下.工作起来就非常方便. 比如B和C文件夹下有一文件D是两者都能够訪问和改动的共享文件,这样是非常方便,但也会有一些问题,假设文件夹中包括磁盘地址,则当连接文件时.必须把C文件夹中的磁盘地址拷贝到B文件夹中,假设B或C随后又往该文件里加入内容,则新的数据块将仅仅列入进行加入工作的用户的文件夹中. 其它的用户对此改变是不知道的.违背了共享的目的. 两种方法解决这样的问题. 方法一:硬链

理解 Linux 的硬链接与软链接

理解 Linux 的硬链接与软链接 从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称  inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一.通过剖析硬链接与软链接的联系与区别,我们可更好的了解  Linux 中 VFS 这一通用文件模型.并让 Linux 普通用户和系统管理员正确使用硬链接与软链接,帮助文件系统开发者获取 inode  的相关知识. 1

理解 Linux 的硬链接与软链接【转】

本文转载自:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/ 从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一.通过剖析硬链接与软链接的联系与区别,我们可更好的了解 Linux 中 VFS 这一通用文件模型.并让 L

理解 Linux 的硬链接与软链接(待研究)

从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux 虚拟文件系统 (VFS) 的四个基本概念之一.通过剖析硬链接与软链接的联系与区别,我们可更好的了解 Linux 中 VFS 这一通用文件模型.并让 Linux 普通用户和系统管理员正确使用硬链接与软链接,帮助文件系统开发者获取 inode 的相关知识. Linux 的文件与目录 现代操作系统为解决

Linux 的硬链接与软链接

Linux 的硬链接与软链接    http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/    若一个 inode 号对应多个文件名,则称这些文件为硬链接.软链接本身是个特殊的文件,文件内容指向另一个文件名路径(建议绝对路径)   硬链接存在以下几点特性:      文件有相同的 inode 及 data block:      只能对已存在的文件进行创建:      不能交叉文件系统进行硬链接的创建:      不

linux中硬链接与软链接

硬链接记录的是目标的inode,软链接记录的是目标的路径.软链接就像快捷方式,而软链接就像备份.软链接可以做跨分区的链接,而硬链接由于inode的缘故,只能在本分区中做链接,所以软链接使用更多. 他们的缺点: 硬链接: 1.不允许给目录创建硬链接 2.只有在同一文件系统中的文件之间才能创建链接 软链接: 软链接可以是任意的文件或目录,链接文件甚至可以链接不存在的文件,因此产生"断链"问题,并且可以循环链接自己. linux中硬链接与软链接

转:理解 Linux 的硬链接与软链接

Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程 创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘等输入设备及网络交互等 I/O 操作设计了一组通用 API,使他们被处理时均可统一使用字节流方式.换言之,UNIX 系统中除进程之外的一切皆是文件,而 Linux 保持了这一特性.为了便于文件的管理,Linux 还引入了目录(有时亦被称为文件夹)这一概念.目录使文件可被分类管理,且目录的引入使 L

linux下硬链接和软链接

[硬链接] 硬链接是指通过索引节点进行链接,太复杂了看操作吧. 硬链接的创建 [[email protected] ~]# mkdir -p /test/oldboy/   创建一个目录 oldboy/ [[email protected] ~]# cd /test/oldboy/             切换到这个目录中来 [[email protected] oldboy]# touch oldboyfile     #创建一个测试文件 制作硬链接 [[email protected] ol

Linux的硬链接和软链接

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link), 也就是软链接.默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点来进行连接.在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index).在Linux中,多个文件名指向同一索引节点是存在的.一般这种连接就是硬连接.硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到