硬链接和软连接

硬链接:

硬链接是指通过索引节点来进行转换,在Linux的文件系统中,保存在磁盘分区中的文件

不管是什么类型都会给它分配一个编号,这个编号被称为索引节点(Inode Index)或者成为Inode

在Linux系统中,多个文件中指向同一个索引节点(Inode)是正常允许的。一般这种链接就成为硬链接。硬链接的作用之一是允许一个多文件拥有多个

有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件,如netapp存储中的快照功能就应用了这个原理,增加了一个快照就多了一个硬链接)。问什么文件建立了硬链接就会放置数据删除呢?

因为文件系统的原理是,只要文件名指向统一索引节点(Inode)还有一个以上的链接(仅仅删除了该文件指向)。只删除其中一个链接并不影响索引节点本身和其它的链接(既数据文件指向)。只删除一个链接并不影响索引节点本身和其它的链接(既数据文件实体并未被删除),只有当最后一个链接被删除后,此时如果有新数据要存储到硬盘时被删除文件的数据块及目录的链接才会被释放,空间被新数据占用覆盖。此时,数据就再也无法找回了。也就是说,在linux系统中,删除文件(其实目录也是文件)的添加是于之相关的所有硬链接文件均被删除。

软链接:

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

实例演示:

[root@localhost /]# mkdir /backup #创建一个空目录

[root@localhost backup]# touch 1.txt #创建一个测试空文件

[root@localhost backup]# cat 1.txt #查看空文件里边的内容

123456789

[root@localhost backup]# ln 1.txt 1.txt_ying #创建硬链接 ln

[root@localhost backup]# ls -ls

total 8

4 -rw-r--r--. 2 root root 10 Jan 31 06:10 1.txt

4 -rw-r--r--. 2 root root 10 Jan 31 06:10 1.txt_ying

[root@localhost backup]# ln -s 1.txt 1.txt_ruan #创建软链接 ln -s 文件名 新文件名

[root@localhost backup]# ll

total 8

-rw-r--r--. 2 root root 10 Jan 31 06:10 1.txt

lrwxrwxrwx. 1 root root 5 Jan 31 06:11 1.txt_ruan -> 1.txt #软链接

-rw-r--r--. 2 root root 10 Jan 31 06:10 1.txt_ying

[root@localhost backup]# mkdir 1.txt #创建一个目录

[root@localhost backup]# ll

total 4

drwxr-xr-x. 2 root root 6 Jan 31 07:04 1.txt #目录

lrwxrwxrwx. 1 root root 5 Jan 31 06:11 1.txt_ruan -> 1.txt

-rw-r--r--. 1 root root 10 Jan 31 06:10 1.txt_ying

[root@localhost backup]# ln 1.txt #目录创建硬链接

ln: ‘1.txt’: hard link not allowed for directory #目录不允许硬链接

[root@localhost backup]# ln -s 1.txt 1.txt_ruan_new #目录创建软链接

root@localhost backup]# ls -ll

total 4

drwxr-xr-x. 2 root root 6 Jan 31 07:04 1.txt

lrwxrwxrwx. 1 root root 5 Jan 31 06:11 1.txt_ruan -> 1.txt

lrwxrwxrwx. 1 root root 5 Jan 31 07:05 1.txt_ru_new -> 1.txt #目录软链接

-rw-r--r--. 1 root root 10 Jan 31 06:10 1.txt_ying

总结:Ln命令不能对目录创建硬链接,但可以对目录创建软链接,对于目录的软链接也是生产场景运维中常用的功能

[root@localhost backup]# rm -f 1.txt #测试删除创建的空文件

[root@localhost backup]# ll -li

total 4

33745512 lrwxrwxrwx. 1 root root 5 Jan 31 06:11 1.txt_ruan -> 1.txt

33745552 -rw-r--r--. 1 root root 10 Jan 31 06:10 1.txt_ying

提示:内容还在,其实这就是因为有1.txt_ying硬链接的存储,因此即使删除了1.txt,但是仍有硬链接指向着文件的INODE节点,所以,此时,文件才会被释放删除,当删除文件1.txt时,仅仅删除了1.txt该文件的INODE节点的链接而已。

总结:通过上面的测试可以看出:当删除原始文件1.txt后,硬链接1.txt_ying不收影响,但是软链接文件1.txt_ruan失效。

链接总结:

删除软链接1.txt_ruan,对1.txt_ying无影响

删除硬链接1.txt_ying对1.txt_ruan无影响

删除源文件1.txt,对硬链接1.txt_ying无影响,对软链接有影响。

linux 小度 驱动_Linux硬链接和软链接相关推荐

  1. linux硬链接与软链接

    详细文章链接:https://www.cnblogs.com/crazylqy/p/5821105.html (上面这个也是转载的!) 区别: 1.硬链接原文件/链接文件公用一个inode号,说明他们 ...

  2. 实例讲解Linux系统中硬链接与软链接的创建

    导读 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接.硬链接与软链接的区别从根本上要从Inode节点说 ...

  3. Linux 硬链接和软链接的区别

    硬链接和软链接的区别 Linux 与其他类 UNIX 系统一样并不区分文件与目录:目录是记录了其他文件名的文件.我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user ...

  4. 理解 Linux 的硬链接与软链接

    Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键盘 ...

  5. Linux下的硬链接和软链接

    Linux下的硬链接和软链接 一.系统及ln版本 二.硬链接 1.创建目录及文件 2.创建链接文件 3.查看链接文件 4.删除源文件,链接文件不受影响 三.软链接 1.创建目录及文件 2.创建软链接文 ...

  6. Linux 系统的硬链接和软链接详解

    文章目录 什么是链接 链接用来干什么的 硬链接和软链接的区别 硬链接和软链接的图示 总结 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 ...

  7. linux文件存储、inode、硬链接、软链接

    目录 介绍 inode的内容 inode的大小 inode号码 目录文件 硬链接 软链接 介绍 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector).每个扇区储存512 ...

  8. yfan.qiu linux硬链接与软链接

    http://www.cnblogs.com/yfanqiu/archive/2012/06/11/2545556.html Linux 系统中有软链接和硬链接两种特殊的"文件". ...

  9. Linux可以对目录进行硬链接,Linux硬链接与软链接原理及用法解析

    在linux系统中有种文件是链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(hard link),另一种是软链接或者也称为符号链接(symbolic link). 硬链接概念 ...

最新文章

  1. 2022-2028年中国超声波探伤仪行业市场现状调研及发展前景分析报告
  2. cookie 和session 的区别详解
  3. DDD领域驱动设计之聚合、实体、值对象
  4. php自己写配置项,创建配置文件 用PHP写出自己的BLOG系统 2
  5. SQL模糊查询 LIKE
  6. Visual Studio 2015和2017里面应该创建哪种 Class Library
  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 24丨找到连续区间的开始和结束数字【难度中等】​
  8. c++的提示类未定义_推荐一款适合初学者的C/C++IDE
  9. c# 访问hbase_大数据技术之C#通过Thrift连接查询HBase主要方法总结
  10. Android之xUtils-3.0数据库框架详解
  11. cmd 查询ip 服务器信息,cmd查看ip(cmd查别人ip)
  12. C语言课程设计---职工工资管理系统
  13. 小程序 · 云开发快速入门与实战
  14. PPT图形绘制:端午节PPT模板背景
  15. 数独基本规则_数独入门:你必须掌握的那些规则和技巧
  16. 浅谈cookie中的SameSite属性
  17. 创意云渲染农场与《熊出没》
  18. python 分析泰坦尼克号生还率_泰坦尼克号上谁的生存几率更大?Kaggle 金牌得主 Python 数据挖掘框架发现真相...
  19. 通过路由器端口映射实现远程桌面连接
  20. 二叉树的顺序存储和三种遍历(二)

热门文章

  1. Python性能分析的学习笔记
  2. iPhone手机投屏小米盒子
  3. Day1:360培训学习重点笔记(7.13)
  4. Maven使用archetype迅速生成项目骨架
  5. 算法学习三:使用霍纳规则计算多项式
  6. 【阅读】《番茄工作法图解》---让工作更高效
  7. 在Chrome+Visual Studio中调试asp.net程序很慢的问题(Firefox也有类似问题)
  8. ActionScript读取XML的路径问题
  9. S:date 的使用方法
  10. python爬虫从小白到高手 Day1 爬取百度音乐歌单