1.  硬连接

文件系统以Inode号为标识,而同时也提供可读性强的字符串作为文件的标识。对应关系如下面这样:

当我们在利用名字操作文件时,文件系统会转换为Inode进行操作。那么硬连接就是有不止一个名字对应于Inode。底层文件系统看来还是一个文件实体和一个Inode。如下图所示:


示例:

图中,一开始创建了一个orgin文件,写入字符串“hello”, 随后,又有一个叫sec的文件链接上来了。使用命令  ls -i 查看,发现Inode编号一致,如下所示:

此时,修改文件内容:

状态则如下图所示:

2. 软连接

软连接是将一个文件的绝对路径写入另外一个文件中,软连接是文件系统中除了普通文件,目录外的第三类文件,软连接的文件内容存放着原文件的路径,如下图软连接文件的内容与原文件名name1对应。如下图所示:

操作:

创建了一个叫softlink的软连接链接到orgin文件,该软文件类型是 'l '(最左侧的字母,与此对应的是普通文件用 '-', 目录文件用 'd' ), 它的长度为5 (见下文解释),使用cat程序时,返回的是原文件的内容,而此时的状态是:

这时候,如果通过软连接修改文件的话,从上面可以看出,原文件会同步修改。如果删除原文件,会导致软连接失效,成为断链(dangling reference)。

此外,查看软连接内容用readlink:

至于,现在终于知道为什么显示软连接的文件长度是5(见上文)了, 因为它存放的内容是 "orgin", 长度为5。本次实验的软连文件和原文件是在一个目录下,那么,如果存放在不同的目录下,软连接文件的内容和文件长度是什么样子的呢?我想你心中已经有答案了,去验证吧~

软连接和硬连接的区别相关推荐

  1. linux下的连接文件——软连接和硬连接的区别

    软连接可以理解为,源文件的快捷方式,软连接文件记录的是源文件的路径,占用空间非常小.当把源文件删除后,那么软连接文件也就变成一个坏文件了,不能使用了. 硬连接和源文件的inode信息是一模一样的,可以 ...

  2. 软连接和硬连接的区别linux,软链接和硬链接的区别你真的知道吗?

    导读 在 Linux 系统中,一切都是文件,然而为了区分不同类型的事物,我们有了:普通文件:目录文件:链接文件:设备文件 Linux 系统中,一切都是文件,然而为了区分不同类型的事物,我们有了: 普通 ...

  3. linux之软连接和硬连接的区别

    硬连接 硬链接是通过索引节点进行的链接.在Linux中,多个文件指向同一个索引节点是允许的,像这样的链接就是硬链接.硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建.如果删除硬链接对应 ...

  4. 总结软连接与硬连接的区别

    1. 本质: 硬链接:本质是同一个文件 软链接:本质不是同一个文件 2. 跨设备 硬链接:不支持 软链接:支持 3. inode 硬链接:相同 软链接:不同 4. 链接数 硬链接:创建新的硬链接,链接 ...

  5. 总结软连接和硬连接区别

    总结软连接和硬连接区别. 硬链接和软链接的区别 1.本质不同 硬链接:同一个文件,多个名称. ​软链接:不同的文件. 2.跨分区 硬链接:不支持跨分区. 软链接:支持跨分区. 3.目录 硬链接:不支持 ...

  6. Centos 7创建软连接,硬连接的方法

    创建软连接的方式#ln -s soure object 创建软连接是连接文件本身,可以跨分区建立软连接,不会应为不同分区而出现不能使用的问题.在创建软连接的文件中,修改一处文件另一处同时发生修改,当删 ...

  7. Service系统服务(二):补充应用技巧、软连接与硬连接、man手册、zip备份、vim效率操作、自定义yum软件仓库、发布及测试yum仓库、编译安装软件包...

    一.补充应用技巧 目标: 本例要求掌握在运维中比较常用的一些扩展命令技巧的使用,完成下列小技巧操作: 1> 采用数值形式将目录/root的权限调整为 rwx------    2> 将记录 ...

  8. linux 软连接、硬连接创建、删除,说明

    [腾讯云]云服务器2核4G74元/年,222元/3年 具体用法: 创建 1.软连接命令: ln -s /目录/被连接的文件(源文件) /目录/连接文件(新建立的) 如果是可执行文件,软连接回去到源目录 ...

  9. 总结软连接和硬连接区别?

    linux中文件的inode编号的意义: 文件分为数据和元数据. 数据:用户记录在物理磁盘空间的真实数据. 元数据:分为文件名.文件大小.权限.inode编号.属主.属组.等,其中inode编号是指向 ...

最新文章

  1. Java基础班学习笔记(8)
  2. python制作ios游戏_python自动化生成IOS的图标
  3. 3.1.3 训练/开发/测试集的问题以及注意事项
  4. CodeForces - 1287C Garland(贪心)
  5. 好的软件人员必看的书
  6. openwrt 运行程序时提示缺少libstdc++.so.6
  7. C语言中Uint8_t数据类型
  8. html文本格式化意思,HTML文本格式化标签(Formatting)
  9. windows理论基础(一)
  10. 开源中国iOS客户端学习——(七)MBProgressHUD特效
  11. Spring Boot 2.0.3 修改 Servlet 容器(服务器)配置
  12. Atitit 算法原理与导论 目录 1. Attilax总结的有用算法 按用途分类 1 1.1. 排序算法 字符串匹配(String Matching) 1 1.2. 加密算法 编码算法 序列
  13. Mysql 时间戳类型使用心得
  14. IOS 开发学习29 Socket框架 AsynSocket的使用
  15. Spring Boot Admin
  16. 量化7年1000万知与行,回测量化7年如果只每月定投5.4万到沪深300指数基金,能否实现7年1000万
  17. [AHK]爬虫基础 解析IP138网站返回的结果
  18. 自己动手写ORB特征
  19. 百度收录排名好的网站-哪些网站百度收录排名好
  20. 帝国CMS整站|手机号/QQ靓号商城源码|适配移动端

热门文章

  1. 图片抖动的效果(修改后)
  2. 线上拼团活动方案怎么制作设计?
  3. 屏蔽ctrl/shift + R/F5
  4. 迈特二十能升到鸿蒙系统吗,华为鸿蒙OS 2.0系列Beta 2发布
  5. 网易云信技术创新,助力网易云音乐社交玩法升级
  6. Java包的简单理解
  7. 用Excel求线性回归方程
  8. How to Install Nvidia Kernel Module Cuda and Pyrit in Kali Linux
  9. Kali Linux 安装Nvidia显卡驱动(二)CUDA, Pyrit and Cpyrit-cuda
  10. 2022华中杯数学建模思路