热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

软连接_如何区别硬连接和软连接

本文由编程笔记#小编为大家整理,主要介绍了如何区别硬连接和软连接相关的知识,希望对你有一定的参考价值。一、什么是链接?二、它能做什么?
本文由编程笔记#小编为大家整理,主要介绍了如何区别硬连接和软连接相关的知识,希望对你有一定的参考价值。


一、什么是链接?


二、它能做什么?


三、区别是什么?


   针对以上三个问题,我们来进行讨论学习,如有不足指出,请及时留言指正。


1.链接是什么?在linux中链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念。


2.可以将链接简单地理解为 Windows 中常见的快捷方式,在Linux通常也会将一些目录层次较深的文件链接到一个更易访问的目录中等。


3.首先,从使用的角度讲,两者没有任何区别,都与正常的文件访问方式一样,支持读写,如果是可执行文件的话也可以直接执行。

  那区别在哪呢?在底层的原理上。


  要明白软硬链接的区别,首先要搞清楚什么是索引节点。简单点说在Linux中一切皆文件,每一个文件都有一个相关的节点目录,在节点中保存着所有者身份和权限以及时间信息等。每一个信息都有一个编号,这个编号是独一无二的。而Linux则是通过节点信息编号来识别文件的,文件不同,节点编号也不一样,分区不同即使节点号相同文件也不一样,这个就是索引节点。


  请看下面的这幅图中,67就是索引节点编号,2是链接数目,现在处于同一个分区中,节点编号却是一致的这样的链接就是硬链接。

  

  注意一定要是在分区一致的目录下发现节点编号一致的文件就是硬链接,如果分区不一致,例如:一个在/data/tmp文件节点编号是67,另一个在/root/file1(名字随意)的文件节点编号也是67。这样的不能称之为硬链接!硬链接只能在同一文件系统中的文件之间进行链接,不能对目录进行创建,也不支持创建文件夹的硬链接。

 技术分享图片


技术分享图片


软连接: 

          软链接(也叫符号链接)与硬链接不同,文件用户数据块中存放的内容是另一文件的路径名的指向(可以理解为Windows中的快捷方式)。软链接就是一个普通文件,只是数据块内容有点特殊。软链接可对文件或目录创建。  因为软连接就是一种普通的文件,所以节点编号是不相同的。并且链接数不增长,支持跨分区与文件夹创建。

技术分享图片

死链接:

 技术分享图片


总结:

硬链接:只能在同一文件系统中的文件之间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以起到防止因为误操作而错误删除文件的作用。由于硬链接是有着相同节点号仅文件名不同的文件,因此,删除一个硬链接文件并不影响其他有相同节点 号的文件。

软连接:可以在多个文件系统中进行链接,支持对目录进行创建,删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接就变成了死链接。


推荐阅读
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
  • 在创建新的Android项目时,您可能会遇到aapt错误,提示无法打开libstdc++.so.6共享对象文件。本文将探讨该问题的原因及解决方案。 ... [详细]
  • CentOS 6.5 上安装 MySQL 5.7.23 的详细步骤
    本文详细介绍如何在 CentOS 6.5 系统上成功安装 MySQL 5.7.23,包括卸载旧版本、下载安装包、配置文件修改及启动服务等关键步骤。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文详细介绍了Linux系统中软链接和硬链接的概念、创建方法及其应用场景。通过实例解释了两者的区别,包括如何防止误删文件及软链接在跨文件系统时的优势。 ... [详细]
  • 本文详细介绍了如何在预装Ubuntu系统的笔记本电脑上安装Windows 7。针对没有光驱的情况,提供了通过USB安装的具体方法,并解决了分区、驱动器无法识别等问题。 ... [详细]
  • Linux环境下C语言实现定时向文件写入当前时间
    本文介绍如何在Linux系统中使用C语言编程,实现在每秒钟向指定文件中写入当前时间戳。通过此示例,读者可以了解基本的文件操作、时间处理以及循环控制。 ... [详细]
  • 本文介绍Linux中的Diff命令,该命令用于逐行对比两个文本文件,展示它们之间的差异。通过系统性检查,它能有效标识出文件间所有不同的行,无需事先对文件进行排序。 ... [详细]
  • 本文详细介绍了如何通过RPM包在Linux系统(如CentOS)上安装MySQL 5.6。涵盖了检查现有安装、下载和安装RPM包、配置MySQL以及设置远程访问和开机自启动等步骤。 ... [详细]
  • 在使用STM32Cube进行定时器配置时,有时会遇到延时不准的问题。本文探讨了可能导致延时不准确的原因,并提供了解决方法和预防措施。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • Linux中的yum安装软件
    yum俗称大黄狗作用:解决安装软件包的依赖关系当安装依赖关系的软件包时,会将依赖的软件包一起安装。本地yum:需要yum源,光驱挂载。yum源:(刚开始查看yum源中的内容就是上图 ... [详细]
author-avatar
别样青年别样范儿bo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有