title: Linux文件系统的硬连接和软连接
date: 2018-02-06T20:26:25+08:00
tags: ["文件系统"]
categories: ["Linux"]


为了更好地说明文件链接是什么,先讲一下Linux的磁盘管理方式。

Linux的文件系统格式被称为ExtN(N=2,3,4),是一种基于inode(索引节点)的文件系统,是所有类Unix系统都有的一种数据结构也是文件系统的核心,每一个新创建的文件都会被分配一个inode,且每个文件都有一个唯一的inode编号。inode可以简单理解成一个指针,指向文件所在的物理位置,同时文件的属性也保存在inode中。

ExtN文件系统读取数据过程示意图

inode只是记录文件保存的位置,实际的文件保存在data block区域。
而编号为3的inode就是文件的一个链接。
当我们用ls -l命令查看文件信息的时候,其中的连接数就是inode的个数,我们可以通过ln建立硬链接为同一个文件建立多个连接,它可以使得同一个文件能够拥有不同的路径,还能方式被恶意删除,但有以下几点需要注意:

  • 使用ln建立硬链接是直接引用目标文件的inode,所有的属性,包括文件的权限信息也会被一同引用进来。
  • 只是复制了inode,没有复制data block信息,因此额外的磁盘占用很小,但也使得硬链接只能在同一分区中建立。

建立软连接需要增加-s参数,软连接相当于Windows中的快捷方式,可以被建立在任何位置,和目标inode的文件属性不相同,也不会有连接数+1,同时不能起到备份的作用,删除原文件后软连接也会失效。

最新文章

  1. sublime Text 的安装、破解、汉化、使用
  2. c#设计模式之简单工厂
  3. <实训|第七天>横扫Linux磁盘分区、软件安装障碍附制作软件仓库
  4. Android Handler处理机制 ( 二 ) ——Handler,Message,Looper,MessageQueue
  5. android 合并两个jar包
  6. HDU 4708:Rotation Lock Puzzle
  7. native
  8. 一步一步学习Unity3d学习笔记系1.1
  9. 【转载】MyBatis之传入参数
  10. JavaScript面向对象+Array的用法及字符串组合+动态建立锚点
  11. ##解决 ViewPager 调用 notifyDataSetChanged()无刷新:原理、解决办法##
  12. 安装AppManager
  13. mac系统webstorm快捷键
  14. fiddler抓取https请求
  15. face recognition[翻译][深度人脸识别:综述]
  16. pixmap和label设置图片自适应大小
  17. POJ 2002 Squares 几何, 水题 难度: 0
  18. 基于Eclipse搭建hadoop开发环境
  19. socat流量操控
  20. WorldWind源码剖析系列:大气层散射球类AtmosphericScatteringSphere

热门文章

  1. Appium Server
  2. Android的Base64的坑
  3. [原]Django-issue(1)---postgresql数据库连接密码错误
  4. VUE组件的学习
  5. SHELL编程之产生随机数
  6. ArcEngine临时数据存储 创建内存工作空间
  7. 主流框架的搭建(VUE,React)
  8. Python学习之旅(三十三)
  9. linux --nginx篇
  10. web 容器