Linux系统中包括两种链接方式:硬链接(hard link)和符号链接(symbolic link),其中符合链接就是所谓的软链接(soft link),那么两者之间到底有什么区别呢?

inode

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

hard link

hard lin可以理解是一个指针,它指向源文件的inode,并不会产生新的inode。hard link不管有多少个,都指向的是同一个inode节点,只是新建一个hard link会把结点连接数增加,只要结点的连接数不是0,文件就一直存在,不管你删除的是源文件还是连接的文件。只要有一个存在,文件就存在(其实就是引用counter的概念)。当你修改源文件或者连接文件任何一个的时候,其他的文件都会做同步的修改。可见下图的示例。

symbolic link

symbolic link拥有独立的inode,是一个独立的文件,而文件的内容是源文件的路径指针,因此可以通过symbolic访问到源文件,因此删除符号链接对源文件没有影响,但是删除了源文件,符号链接文件就无法找到指向的文件。这里可以想象成Windows中的快捷方式。

对比

1. 符号链接和源文件操作权限不一样;硬链接与源文件操作权限完全一致。

2. 符号链接可以跨文件系统(分区);由于inode的限制以及文件系统的可卸载性,硬链接不容许跨文件系统。

3. 符号链接可以对一个不存在的文件名进行链接;硬链接不可以。

4. 符号链接可以对目录进行连接;硬链接不可以。

原文:http://www.cnblogs.com/jingyzzz/p/6241139.html

link linux 跨设备,Linux中的两种link方式相关推荐

  1. Map集合中的两种取出方式keySet和entrySet

    /*map集合中的两种取出方式:1.Set<k> keySet:将map集合中所有的键存入到Set集合,因为Set具备迭代器.所有可用迭代方式取出所有的键,再根据get方法,获取每一个键对 ...

  2. 浅谈POE供电系统中PSE两种供电方式——终端跨度、中间跨度

    标准的五类网线有四对双绞线但是在10M BASE-T和100M BASE-T中只用到其中的两对. IEEE80 2.3af允许两种用法: 1. 中间跨度法,信号线(1,2,3,6).电源线(4,5,7 ...

  3. C++中的两种绑定方式(静态绑定、动态绑定)

    两种绑定方式 静态绑定:在编译时刻,根据指针或引用变量的静态类型来决定成员函数属于哪一个类. 动态绑定:在运行时刻,根据指针或引用变量实际指向或引用的对象类型(动态类型)来确定成员函数属于哪一个类. ...

  4. 1000个苹果要分到10个箱子中去 两种分析方式

    前些日子接到了一个Java开发的电话面试,接了电话人家开门见山就直接说现在是否方便,什么什么时候收到您的简历投递,是否可以进行电话面试,如果可以就可以直接开始了,emmm,这么突然,也没好意思问公司名 ...

  5. Oracle中的两种验证方式:操作系统验证和密码文件验证,通过操作系统验证的方式解决客户端登录不了数据的问题

    Oracle验证两种方式,操作系统验证,密码文件验证 启动密码文件验证 如果数据库登录方式是操作系统验证sys登录不需要用户名和密码就可以登录 C:\Documents and Settings\ww ...

  6. mysql中两次排序_MySQL中的两种排序方式: index和filesort

    index :通过有序索引顺序扫描直接返回有序数据,不需要额外的排序,操作效率较高. filesort:通过对返回数据进行排序,filesort 并不代表通过磁盘文件排序,而是说明进行了一个排序操作, ...

  7. java中的uuid是啥,UUID在Java中的两种发作方式

    需求: 集群环境下需要产生uuid,uuid的作用不言而喻 转发请注明出处:http://snv.iteye.com/ 环境: org.safehaus.jug jug 2.0.0 asl 或: or ...

  8. iOS中的两种搜索方式UISearchDisplayController和UISearchController

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前iOS的搜索一般都使用UISearchDisplayCon ...

  9. java 拷贝属性值_Java 反射拷贝相同的属性值到指定对象中(两种实现方式)

    范例: public class ReflectUtils { private ReflectUtils() {}; /** * 对象反射赋值 * * @param source 目标对象 * @pa ...

最新文章

  1. REDIS的几个测试结果
  2. 【Codeforces Round #430 (Div. 2) D】Vitya and Strange Lesson
  3. matlab 坐标修改gca及Matlab中输入上标、下标、希腊字母,特殊符号或字体
  4. (九)HTML5本地存储——本地数据库SQLLite的使用
  5. python面向对象学习_Python 初识面向对象#学习猿地
  6. Android5.0L因SystemUI ANR导致的黑屏问题分析
  7. IOS开发笔记 - 先有鸡,还是先有蛋?相互引用的奇遇!
  8. T-SQL笔记1:SELECT及SELECT高级应用
  9. SpringBoot 集成 Caffeine、Redis实现双重缓存方式(二)
  10. 炫酷报表制作工具:RDP报表工具
  11. 纪念盘古工坊开发的一款手机游戏正式发布
  12. 2.4G天线在PCB板上的设计资料
  13. Android之数据统计TalkingData集成
  14. 软件测试-柠檬班python全栈自动化50期测试学习笔记分享
  15. win10计算机管理不可用,win10管理员被禁用怎么办,win10怎么管理员运行
  16. IOS 7.1 在线安装IPA(OTA无线发布)整理
  17. C++数组连接求能被7整除的数
  18. 基于HTML+CSS+JS+JQuery的京东商城
  19. Linux语言和字体的自定义设置
  20. esp8266连接mqtt服务器

热门文章

  1. mac安装python环境教程_python mac下安装虚拟环境的图文教程
  2. mysql bin oct_python 讲解进制转换 int、bin、oct、hex
  3. mysql 闪回_MySQL数据误删除的快速解决方法(MySQL闪回工具)
  4. 集群、分布式、微服务概念和区别
  5. (vue基础试炼_07)Vue实例生命周期函数
  6. HTTP系列学习(笔记二):HTTPS与HTTP的区别在哪?
  7. root - 计算机术语,root什么意思
  8. 分区裁剪 oracle,[讨论]分区表并行和剪裁的困惑
  9. python模块里的函数及说明,Python模块 time与datetime模块的函数说明及使用实例
  10. React之createRef