文档章节

linux硬链接和软连接

圣诞
 圣诞
发布于 2016/03/06 20:26
字数 1003
阅读 64
收藏 1

Linux链接概念:
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号(软)链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

硬连接:
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放,通过给文件设置硬链接文件,来防止重要的文件被删除。文件真正删除的条件是与之相关的所有硬连接文件均被删除。目录的硬链接不能跨越文件系统。每个目录下面都有一个硬链接“.”号,和对应上级目录的链接“..”。

软连接:
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。删除原文件,软连接文件依然存在,但是无法访问源文件了。软连接和源文件是不同类型的文件也是不同的文件。ln 命令不能对目录创建硬链接,但是可以对目录创建软连接。

测试:

[root@changhao ~]# touch a  #创建一个测试文件a.
[root@changhao ~]# ln a b    #创建a的一个硬链接文件b.
[root@changhao ~]# ln -s a c   #创建a的一个符号链接文件c.
[root@changhao ~]# ls -li     #-i参数显示文件的inode节点信息.
total 116
396414 -rw-r--r--. 2 root root     0 Mar  5 04:18 a
396414 -rw-r--r--. 2 root root     0 Mar  5 04:18 b
396417 lrwxrwxrwx. 1 root root     1 Mar  5 04:18 c -> a
上面的测试结果中可以看出,硬链接文件b与源文件的inode节点号相同,均为396414,然而软连接文件的inode节点号不同。

我们再做一个测试:
[root@changhao ~]# echo "My name is changhao" >>a   #向文件a添加信息。
[root@changhao ~]# cat a     #查看文件a的内容。
My name is changhao
[root@changhao ~]# cat b      #查看文件b的内容。
My name is changhao
[root@changhao ~]# cat c       #查看文件c的内容。
My name is changhao
[root@changhao ~]# rm -f a     #删除文件a。
[root@changhao ~]# cat b       #查看删除文件a后,文件b的内容。
My name is changhao
[root@changhao ~]# cat c      #查看删除文件a后,文件b的内容。
cat: c: No such file or directory    #提示没有这样的文件或目录。

通过上面的测试可以看出:当删除原始文a后,硬连接b不受影响,但是符号连接c文件无效。

总结:1.ln 命令不能对目录创建硬链接,但是可以对目录创建软连接。
2.对于目录的软连接是生产场景运维中常用的技巧。
3.目录的硬链接不能跨越文件系统。
4.每个目录下面都有一个硬链接“.”号,和对应上级目录的链接“..”。
5.在目录里创建一盒目录,父目录的链接数增加(子目录里的..来指向父目录)1。但是在父目录里创建文件,父目录的连接数不会增加。



© 著作权归作者所有

共有 人打赏支持
圣诞
粉丝 2
博文 3
码字总数 1877
作品 0
苏州
私信 提问
Linux下的softlink和hardlink

Linux中包括两种链接:硬链接(hard link)和软链接(soft link),软链接又称为符号链接(symbolic link) 创建命令:ln -s softlink destfile/directory #建立软连接ln hardlink destfile #建立...

烽焱10仴
2014/08/21
0
0
理解 Linux 的硬链接与软链接

理解 Linux 的硬链接与软链接 从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Li...

大圈
2015/08/10
0
0
linux软链接和硬链接

简而言之: 软链接相当于windows中的快捷方式 硬链接相当于一个灾备系统,数据存放在两处,与复制不同的是两处之间存在同步机制,一处数据的改变会实时同步到另一处,另外一处数据如果被删除...

长平狐
2013/01/06
99
0
Linux硬链接和软链接的区别

Linux硬链接和软链接的区别 原理上: 硬链接(hard link): A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文...

白羊IT
2018/06/27
0
0
柳大的Linux讲义·基础篇(3)权限、链接与权限管理

转载请注明来自“柳大的CSDN博客”,原文链接:http://blog.csdn.net/poechant/article/details/7215038 1、Linux的权限管理 在Linux中,每个文件都有一个拥有者(owner),而由于每个用户都...

晨曦之光
2012/04/24
66
0

没有更多内容

加载失败,请刷新页面

加载更多

day11

architect刘源源
46分钟前
3
0
论学好Linux系统的超级重要性

不知道各位在日常的工作生活中有没有接触过“rm -rf /*”这个命令,因为这个命令搞出来的事情可还不少呢!前段时间就在一个群里看到了有个小伙子,老板让他去维护一下服务器,这小伙也不太懂...

Linux就该这么学
昨天
1
0
git 使用

1,首先在github配置好信息和仓库,然后在本地进行操作 git init git config user.name 'zhangwuer' git config user.email '56789053@qq.com' 2,与远程分支建立连接 git checkout -b test......

天王盖地虎626
昨天
3
0
git checkout 命令详解

在日常的git操作中,git checkout——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。 在下面的命令中,使用了一些简写,在这里说明一下: git st # git statusgit ci ...

shzwork
昨天
8
0
【Nginx】Nginx多级代理,获取客户端真实请求IP以及每级代理IP

Nginx多级代理,获取客户端真实请求IP以及每级代理IP 如图所示,每一级nginx里的location配置里需要加上对应的配置,最后一级nginx是直接到应用,测试时为了方便,直接用echo模块去测试,打印...

薛定谔的旺
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部