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

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

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


一、什么是链接?


二、它能做什么?


三、区别是什么?


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


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


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


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

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


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


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

  

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

 技术分享图片


技术分享图片


软连接: 

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

技术分享图片

死链接:

 技术分享图片


总结:

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

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


推荐阅读
  • Windows环境下RabbitMQ安装详尽指南
    Windows环境下RabbitMQ安装详尽指南 ... [详细]
  • 如何在Linux系统中实现Windows风格的桌面环境:将Ubuntu 18.04定制为Windows主题界面
    如果您是从Windows转到Linux系统的用户,可能会觉得默认的Ubuntu主题和桌面环境缺乏吸引力和可定制性。尤其是对于习惯了Windows风格的任务栏和主题的用户,Ubuntu 18.04的橙色主题可能显得过于简洁。为了提升用户体验,可以通过安装特定的桌面环境和主题来实现类似Windows的界面效果。本文将详细介绍如何在Ubuntu 18.04中配置和定制桌面环境,使其具备Windows风格的外观和功能。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • PHP自学必备:从零开始的准备工作与工具选择 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • HTML中的runat属性具体含义及应用场景解析
    本文详细解析了HTML中`runat`属性的具体含义及其应用场景。通过深入探讨该属性的功能和使用方法,为开发者提供了宝贵的参考。读者将了解如何在实际项目中有效利用`runat`属性,提升网页开发的灵活性和效率。希望本文能为对这一主题感兴趣的读者带来实质性的帮助。 ... [详细]
  • 在嵌入式Linux系统中,性能低下通常由CPU、内存和I/O三个关键因素引起。为了有效提升系统性能,首先需要识别并定位性能瓶颈。通过综合分析这些瓶颈,可以采取针对性的优化措施,如调整内核参数、优化算法和改进数据结构等,从而显著提高系统的整体性能。 ... [详细]
  • MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案
    MySQL 8.0 MGR 自动化部署与配置:DBA 和开源工具的高效解决方案 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
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社区 版权所有