Linux下的softlink和hardlink

Linux中包括两种链接:硬链接(hard link)和软链接(soft link),软链接又称为符号链接(symbolic link)

ln -s destfile/directory softlink   #建立软连接
ln destfile hardlink                #建立硬连接

inode

在Linux系统中,内核为每一个新创建的文件分配一个Inode,每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在inode里,在访问文件时,inode被复制到内存,从而实现文件的快速访问。系统是通过inode来定位每一个文件。

硬链接(hard link)

硬链接实际上是一个指针,指向源文件的inode,系统并不为它重新分配inode。硬连接不会建产新的inode,硬连接不管有多少个,都指向的是同一个inode节点,只是新建一个hard link会把结点连接数增加,只要结点的连接数不是0,文件就一直存在,不管你删除的是源文件还是连接的文件。只要有一个存在,文件就存在(其实就是引用计数的概念)。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。

软链接(soft link)

软链接最直观的解释:相当于Windows系统的快捷方式,是一个独立文件(拥有独立的inode,与源文件inode无关),该文件的内容是源文件的路径指针,通过该链接可以访问到源文件。所以删除软链接文件对源文件无影响,但是删除源文件,软链接文件就会找不到要指向的文件(可以类比Windows上快捷方式,你点击快捷方式可以访问某个文件,但是删除快捷方式,对源文件无任何影响)。

区别

  • 软链接和源文件操作权限不一样;硬链接与源文件操作权限完全一致。
  • 软链接可以跨文件系统(分区);由于inode的限制以及文件系统的可卸载性,硬连接不容许跨文件系统。
  • 软连接可以对一个不存在的文件名进行连接;硬链接不可以。
  • 软连接可以对目录进行连接;硬链接不可以。

参考链接link

Softlink Hardlink相关推荐

  1. Linux下的softlink和hardlink(转)

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

  2. Linux下的softlink和hardlink

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

  3. Linux下的softlink和symbolic link(hardlink)

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

  4. tewa750g 虚拟服务器,把你的打印机共享出来:Hardlink 固网 打印服务器HP-1007

    把你的打印机共享出来:Hardlink 固网 打印服务器HP-1007 2014-11-19 20:15:02 22点赞 69收藏 47评论 最近办公室几个人抢打印机比较恼火,开始搜索解决方法,然后就 ...

  5. NTFS之HARDLINK攻防

    NTFS之HARDLINK攻防 引用: http://www.debugman.com/thread/2061/1/1 http://www.debugman.com/thread/2062/1/1 ...

  6. [Ubuntu] bash shell soft-link error: Too many levels of symbolic links

    Please see the command below: 代码 david_lee@david-desktop:/home/david_lee/test$ sudo ln -s test /usr/ ...

  7. Linux输入输出I/O

    Linux输入输出I/O 本文主要以一张图介绍Linux在I/O上做了哪些事情,即Linux中直接I/O原理. 引言 先看一张图: 这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时 ...

  8. 超专业解析!10分钟带你搞懂Linux中直接I/O原理

    导语 | 本文主要以一张图为基础,向大家介绍Linux在I/O上做了哪些事情,即Linux中直接I/O原理,希望本文的经验和思路能为读者提供一些帮助和思考. 引言 我们先看一张图: 这张图大体上描述了 ...

  9. Linux 常用命令使用方法

    Linux 常用命令使用方法 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入相应的 ...

  10. 【转】Linux入门命令篇(简训)

    目标:[通过此练习能对linux基本命令熟悉,能够进行简单系统管理相关工作,更详细的指令说明,请参照man page] 1.# 表示权限用户(如:root),$ 表示普通用户   开机提示:Login ...

最新文章

  1. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 19 章 服务器配置_19.8. 错误报告和日志...
  2. java生成Https证书,及证书导入的步骤和过程
  3. 配置 html-webpack-plugin 生成预览页面||配置自动打包相关的参数
  4. 数据预处理——数据清洗、异常值与重复数据的检测
  5. php用Simple Excel导出xls
  6. 求求你不要手写redis 缓存set,get
  7. linux 命令行启动虚拟机
  8. webform 控件上面能写 前端事件吗_详细的网易前端秘籍—如何准备面试
  9. html svg画图
  10. Swift:带有私有设置方法的公有属性
  11. git 入门操作指令
  12. Silverlight 游戏开发小技巧:技能冷却效果1(Cooldown)
  13. g hub安装失败_树莓派k8s集群安装mysql及监控
  14. ##R语言生信作图之UpsetR做交集图
  15. 2018年大数据趋势丨大数据的黄金时代
  16. 百战程序员-人工智能从入门到开发教程(60万下载量)
  17. Spring warmth
  18. word方框内插入对勾
  19. Java Swing添加背景图片
  20. 【牛客网-公司真题-前端入门篇】——奇安信秋招笔试-前端-卷1

热门文章

  1. 在linux系统上搭建测试环境
  2. 使用Chrome inspect进行夜神模拟器里app的调试
  3. Vblog#2 DAY1
  4. CSS3实现折角效果
  5. linux启动项修复工具,Boot Repair Tool: 可以修复与启动相关的大部分问题
  6. 你知道chrome小恐龙游戏吗?3分钟使用JavaScript实现
  7. 【VirtualAPP 双开系列06】启动加载第三方 APP 过程
  8. Power BI集成Power Apps,轻松实现用户在报告中任意输入信息
  9. Power Apps 中调用 Automate 工作流
  10. Deepin安装phpstorm教程