Linux 软硬连接

2024-09-02 04:20
文章标签 linux 连接 软硬

本文主要是介绍Linux 软硬连接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 硬链接

实际上并不是通过文件名来找到磁盘上的文件,而是通过inode。在linux中可以让多个文件名对应于同一个 inode,而这种方式就是建立硬链接。硬链接是文件系统中的一种链接类型,它创建了文件的一个额外的目录项,但不占用额外的磁盘空间。硬链接与原始文件共享相同的inode,这意味着它们指向文件系统中相同的数据。

在Linux中,创建硬链接的命令是 ln 源文件 硬链接名称,默认情况下不带任何选项时创建硬链接。示例如下:

abc def 的链接状态完全相同,他们被称为指向文件的硬链接。内核记录了这个连接数, inode为
563511  的硬连接数为 2
我们在删除文件时干了两件事情: 1. 在目录中将对应的记录删除, 2. 将硬连接数 -1 ,如果为 0 ,则将对应的磁盘释放。

硬链接的特点包括:

  • 不能跨文件系统创建。
  • 不能对目录创建硬链接。
  • 删除原始文件不会影响硬链接,但如果所有硬链接的数量都被删除,文件的数据才会被实际删除。
  • 修改硬链接文件会影响原始文件,因为它们指向相同的数据。

硬链接在Linux中主要用于以下几个方面:

  • 文件备份:硬链接允许一个文件拥有多个名称,这意味着即使原始文件名被删除,只要还有硬链接指向该文件,文件内容就不会丢失。这可以作为一种简单的文件备份方法。 
  • 文件多人共享:硬链接可以让多个用户或进程通过不同的文件名访问同一份数据,这在需要共享文件时非常有用。 
  • 路径定位:在某些情况下,硬链接可以用于在文件系统中进行路径定位,例如,./..和..是目录的硬链接,分别代表当前目录和上级目录。 
  • 文件系统管理:硬链接可以帮助系统管理员更有效地管理文件系统,例如,通过硬链接可以在不同的目录中创建文件的快捷方式,而不需要复制文件本身。 

2. 软链接

软链接,也称为符号链接,是文件系统中的一种特殊文件,它包含了它所链接文件的路径名。软链接可以跨文件系统,并且可以链接到不存在的文件。如果原始文件被删除,软链接将失效。

在Linux中,创建软链接的命令是 ln -s 源文件/目录 软链接名称,其中 -s 选项表示 soft,指示 ln 命令创建符号链接。示例如下:

可以看到我们成功创建了一个软链接,使用 ls -li 时也指明了link-soft.txt -> soft.txt,即文件link-soft.txt是soft.txt的链接。通过最左侧第一栏可知,软链接和源文件的inode不同,说明是不同的两个文件,实际上软链接的文件内部存储的是源文件的路径。

软链接的特点包括:

  • 可以链接目录。
  • 可以跨文件系统边界。
  • 软链接文件的内容是另一文件的路径名,而不是文件数据本身。
  • 删除原始文件后,软链接将无法访问,因为它只保留了指向原始文件的路径信息。

在日常工作中,软连接(符号链接)的具体用途包括:

  • 环境变量配置:创建软连接到常用的命令或程序目录,简化环境变量的设置,使得在命令行中可以直接访问这些程序。 
  • 路径简化:将长路径或复杂路径创建软连接到一个简短的名字,方便在终端或脚本中快速导航和引用。  
  • 资源管理:当存储资源不足时,可以将文件(如日志文件)移动到新的存储设备上,并在原位置创建软连接,避免修改配置文件中的路径。 
  • 版本控制:在软件开发中,可以通过软连接快速切换不同版本的软件或库,而不需要复制文件。 

如果想要删除一个软连接或者硬连接,使用指令unlink即可。

还要注意的是:不能给目录创建硬连接,只能给目录创建软链接。

这篇关于Linux 软硬连接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128972

相关文章

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

Linux系统之dns域名解析全过程

《Linux系统之dns域名解析全过程》:本文主要介绍Linux系统之dns域名解析全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、dns域名解析介绍1、DNS核心概念1.1 区域 zone1.2 记录 record二、DNS服务的配置1、正向解析的配置

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提