Linux中有两种链接文件:

1)软链接(符号链接symbol),等同于Windows中快捷方式

ln -s 源文件名 符号链接文件名,源文件名和符号链接文件名是主从关系,源被删了,符号链接也就失效了

eg: ln -s src.c linker.c (linker.c就是src.c的一个符号链接文件);

2)硬链接,ln 源文件名 符号链接文件名,源文件名和符号链接文件名是并列关系,源被删了,符号链接依然有效。硬链接实际上和源文件在硬盘中是同一个东西,效果类似于硬盘上的一个文件,在文件系统上,在我们看来有好多个文件一样。每次删除一个文件时,只要他还有其他的硬链接存在,这个文件就不会被真正删除。只有等所有的链接文件都删除掉了,这个文件才会被真正从硬盘上删除

软链接与硬链接的区别(通俗):

硬链接可认为是一个文件拥有两个文件名;

而软链接则是系统新建一个链接文件,此文件指向其所要指的文件

若源文件改名,则软连接不可用(找不到源文件);硬链接可正常访问到源文件;

修改软连接、硬链接和源文件,访问三者都是同步变化的。

软链接

首先,我建立link_test.txt的测试文件,建立软连接指向测试文件

ln -s 源文件  软连接

查看软连接的内容和源文件内容一样,接着编辑了软连接后,查看软连接和原测试文件

说明编辑软连接就是编辑原文件。测试删除软连接后原文件正常,删除源文件后软连接失效。

同样,当我们修改任何一个软链接文件都会使内容发生改变,文件都保持同步变化。我们也可以看到软链接只有18Kb并不会占用磁盘空间。它只是一个原文件的引用,当我们将原文件删除以后,引用将会失效。

硬链接

ln 源文件  硬连接

建立硬链接后发现,硬链接的大小和原文件一样,并且索引节点号也一样。当我们改变硬链接的文件内容时,同样也会改变原文件的内容。

改变原文件内容,软硬链接内容也都同步改变:

删除原文件

软连接失效,硬链接正常

复制软、硬链接到新的文件

当我们用cp命令复制软链接时,我们复制的是原文件,而不是一个软链接。

复制软、硬链接后,对复制文件修改,都不会影响原文件。

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux29259 人正在系统学习中

[转帖]linux的硬链接和软连接的区别的更多相关文章

  1. 【Linux学习】Linux文件系统4—Linux文件硬链接与软连接

    Linux文件系统4-Linux文件硬链接与软连接 inode:索引节点 (连接文件)link 一.文件硬链接 1.Linux文件系统中,inode只相同的文件是硬链接文件 2.不同文件名,inode ...

  2. linux 的硬链接与软连接

    linux 里有硬链接和软连接两种概念.要明白这些概念首先要明白文件在linux 上其实有3个组成部分. data 真正的数据存储区域 inode 一个用来唯一表示data的数据结构 filename ...

  3. Linux硬链接和软连接的区别与总结

    图示软硬链接的区别 有关硬链接的总结 具有相同inode节点号的多个文件互为硬链接文件: 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除: 只有删除了源文件和所有对应的硬链接文件,文件实体才 ...

  4. Linux的硬链接、软连接与拷贝

    Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).硬链接:创建一个与原文件任何信息都相同的目标文件(文件名可能不同,自由设定).硬连接的 ...

  5. Linux中硬链接和软链接的区别

    看了这篇文章之后,豁然开朗.直接放链接,感谢作者的分享. https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/#ico ...

  6. Linux系统硬链接和软链接介绍

    1.链接的概念 在Linux系统中链接分为硬链接和软连接两种,一种为硬链接,另一种为软连接或符号链接(symbolic Link).ln命令就是创建链接文件的,在默认不带参数的情况下,执行ln命令创建 ...

  7. 理解 Linux 的硬链接与软链接【转】

    转自:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html 从 inode 了解 Linux 文件 ...

  8. 理解 Linux 的硬链接与软链接(待研究)

    从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux ...

  9. Linux 的硬链接与软链接

    Linux 的硬链接与软链接    http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/    若一个 inode 号对 ...

  10. 理解Linux的硬链接与软链接-转载

    理解Linux的硬链接与软链接 来自:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html

随机推荐

  1. 一文带你全面了解openGemini

    本文分享自华为云社区<一文带你全面了解openGemini>,作者: 华为云社区精选. 7月19日,openGemini社区联合华为云DTT(技术公开直播课栏目)共同举办了一期主题为< ...

  2. 提升源代码安全性的C#和Java深度混淆工具——IpaGuard

    提升源代码安全性的C#和Java深度混淆工具--IpaGuard 摘要 Ipa Guard是一款功能强大的IPA混淆工具,通过对iOS IPA文件进行混淆加密,保护其代码.资源和配置文件,降低破解反编 ...

  3. PPT 工作计划PPT 应该怎么样改

    收集素材 页面处理 丰富细节 PPT 工作计划PPT 应该怎么样做

  4. 断点续传(上传)C#版

    断点续传(上传)Java版 1. 客户每次上传前先获取一下当前文件已经被服务器接受了多少 2. 上传时设定偏移量 服务端代码如下: /// <summary> /// 断点续传,获取已上传 ...

  5. peewee 操作 sqlite 锁表问题分析

    在使用python orm 框架 peewee 操作数据库时时常会抛出以一个异常,具体的报错就是 database is locked 初步了解是因为sqlite锁的颗粒度比较大,是库锁.当一个连接在 ...

  6. 【C++第三方库】Windows下编译和使用 WebSocket++/WebSocketpp

    应用场景: 使用C++开发一个支持websocket协议的服务进程,可与HTML5(浏览器js文件)通信.来实现替换基于firebreath框架的跨浏览器插件开发. 当前,讲述websocketpp开 ...

  7. Eight HDU - 1043 (反向搜索 + 康拓展开 / A* + BFS / IDA* )

    题目描述 简单介绍一下八数码问题: 在一个3×3的九宫格上,填有1~8八个数字,空余一个位置,例如下图: 1 2 3 4 5 6 7 8 在上图中,由于右下角位置是空的,你可以移动数字,比如可以将数字 ...

  8. ACM | 新版 C++ 特性

    本文来自 OI wiki,转载仅作学习记录使用. 注意 :考虑到算法竞赛的实际情况,本文将不会全面研究语法,只会讲述在算法竞赛中可能会应用到的部分. 本文语法参照 C++11 标准.语义不同的将以 C ...

  9. Python | 解放双手,用Python实现自动发送邮件

    解放双手,用Python实现自动发送邮件 使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间. Python有两个内置库:smtplib和email,能够实现邮件功能, ...

  10. 用ArcGIS模型构建器生成、导出Python转换空间坐标系的代码

      本文介绍在ArcMap软件中,通过创建模型构建器(ModelBuilder),导出地理坐标系与投影坐标系之间相互转换的Python代码的方法.   在GIS领域中,矢量.栅格图层的投影转换是一个经 ...