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

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

[Linux]:进程(下)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 进程终止 1.1 进程退出的场景 进程退出只有以下三种情况: 代码运行完毕,结果正确。代码运行完毕,结果不正确。代码异常终止(进程崩溃)。 1.2 进程退出码 在编程中,我们通常认为main函数是代码的入口,但实际上它只是用户级

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC