当前位置: 首页 > news >正文

【Linux】软连接和硬链接:创建、管理和解除链接的操作

文章目录

    • 1. 软链接和硬链接简介
    • 2. Linux软链接使用方法
    • 3. Linux硬链接使用方法
    • 4. 总结

1. 软链接和硬链接简介

  1. 什么是软链接
    软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件。它的作用是间接指向一个文件或目录。如果软链接的源文件被删除或移动了,软链接就打不开了。

  2. 什么是硬链接
    硬链接(Hard Link)指通过索引节点来进行链接。在Linux系统中,每个文件都有一个对应的索引节点,记录文件的日期,大小,所在块等信息。硬链接就是指向源文件索引节点的连接。删除源文件,不影响硬链接的访问。

  3. 软链接和硬链接的区别

    • 软链接是一个特殊的独立文件,它内容记录源文件位置;硬链接只是源文件的引用,不占用实际空间。
    • 删除软链接不影响源文件:删除源文件,软链接失效。删除硬链接不影响源文件,需将源文件和全部硬链接删除,源文件才会删除(换句话说,对于硬链接来说,删除了源文件,访问硬链接依旧有效)。
    • 软链接可以跨分区;硬链接不能跨文件系统。
    • 软链接可以针对目录;硬链接不能针对目录

2. Linux软链接使用方法

  1. 创建软链接的语法

    ln -s 源文件或目录 软链接的文件或目录
    

    -s 参数表示创建的是软链接。

  2. 创建软链接文件示例

    # 将test.txt软链接到test_link
    ln -s test.txt test_link
    

    这样就在当前目录下创建了一个test_link的软链接文件,它指向test.txt。如下图,可以看到test_link ,箭头就表示它是一个链接。我们可以直接通过访问/修改test_link 来访问/修改test.txt的内容。
    在这里插入图片描述

    使用ll命令可以看到软链接的相关信息:

    ll test_link
    

    在这里插入图片描述

  3. 为目录创建软链接
    软链接可以为目录创建快捷方式,方式与为文件创建软链接类似:

    # 将/usr/local/dir1目录软链接到dir1_link
    ln -s /usr/local/dir1 dir1_link
    

    这样访问dir1_link就相当于访问dir1目录中的内容。

  4. 修改和删除软链接
    删除或修改软链接不会影响源文件/目录,它只是一个普通文件。

    # 删除软链接 
    rm test_link
    #或者
    unlink test_link
    
    # 修改软链接
    ln -sf test2.txt test_link
    

3. Linux硬链接使用方法

  1. 创建硬链接语法

    ln 源文件 硬链接名
    

    不使用-s参数默认创建硬链接。

  2. 创建硬链接示例

    ln test.txt test_hardlink
    

    这样就在当前目录下创建了一个test_hardlink的硬链接文件,指向test.txt

  3. 查看硬链接信息
    使用ll命令可以看到硬链接信息:

    ll test_hardlink
    

    在这里插入图片描述

    可以看到test_hardlink是一个硬链接文件,指向test.txt, 索引节点相同。

  4. 修改和删除硬链接
    删除或修改硬链接不影响源文件,它只是一个目录项引用源文件的索引节点。

    # 删除硬链接
    rm test_hardlink 
    # 或者
    unlink test_hardlink
    # 修改硬链接内容
    vim test_hardlink
    源文件内容将跟着一起变化。
    
  5. 为目录创建硬链接
    硬链接无法针对目录进行创建。

    ln dir1 dir1_hardlink
    ln: failed to create hard link ‘dir1_hardlink’ => ‘dir1’: Invalid argument
    

4. 总结

  • 软链接通过指向源文件的路径建立链接,硬链接通过索引节点建立链接。
  • 软链接可以跨文件系统,硬链接不能。软链接可以对目录创建链接,硬链接不可以。
  • 删除软链接和硬链接都不影响源文件。
  • 解除软链接和硬链接,直接删除链接文件即可。

相关文章:

【Linux】软连接和硬链接:创建、管理和解除链接的操作

文章目录 1. 软链接和硬链接简介2. Linux软链接使用方法3. Linux硬链接使用方法4. 总结 1. 软链接和硬链接简介 什么是软链接 软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件。它的作用是间接指向一个文件或目录。如果软链接的源文件被删除或移动了,软…...

Matlab群体智能优化算法之海象优化算法(WO)

文章目录 一、灵感来源二、算法的初始化三、GTO的数学模型Phase1:危险信号和安全信号Phase2:迁移(探索)Phase3:繁殖(开发) 四、流程图五、伪代码六、算法复杂度七、WO搜索示意图八、实验分析和结…...

go语言学习-结构体

1、简介 Go语言中的结构体是一种自定义数据类型,可以将不同类型的数据字符组合在一起形成一个单独的实体。结构体可以用于存储和操作复杂的数据结构,以及创建自定义数据类型。通过自定义结构体创建的变量,可以存储不同类型的数据字段。在实际开发中,结构体的用途非常广泛,…...

Stable Diffusion进阶玩法说明

之前章节介绍了Stable Diffusion的入门,介绍了文生图的魅力,可以生成很多漂亮的照片,非常棒 传送门: Stable Diffusion新手村-我们一起完成AI绘画-CSDN博客 那我们今天就进一步讲讲这个Stable Diffusion还能做些什么, …...

PDF控件Spire.PDF for .NET【转换】演示:将PDF 转换为 HTML

由于各种原因,您可能想要将 PDF 转换为 HTML。例如,您需要在社交媒体上共享 PDF 文档或在网络上发布 PDF 内容。在本文中,您将了解如何使用Spire.PDF for .NET在 C# 和 VB.NET 中将 PDF 转换为 HTML。 Spire.Doc 是一款专门对 Word 文档进行…...

二分查找——34. 在排序数组中查找元素的第一个和最后一个位置

文章目录 1. 题目2. 算法原理2.1 暴力解法2.2 二分查找左端点查找右端点查找 3. 代码实现4. 二分模板 1. 题目 题目链接:34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode) 给你一个按照非递减顺序排列的整数数组 nums&#…...

MFC中的主窗口以及如何通过代码找到主窗口

MFC程序中的主窗口 在MFC程序中,可以设置主窗口,主窗口在应用程序类中设置,即设置应用程序类(通常以App结尾,通常包括InitInstance方法的类)的m_pMainWnd属性,将其设置为主窗口的指针。 一般在…...

Typora下载安装 (Mac和Windows)图文详解

目录 Windows版本 一、下载 二、安装 Mac版本 一、下载 二、安装...

32位单片机PY32F040,主频72M,外设丰富,支持断码LCD

PY32F040 系列微控制器采用高性能的 32 位 ARM Cortex-M0 内核,宽电压工作范围的 MCU。嵌入高达 128 Kbytes flash 和 16 Kbytes SRAM 存储器,最高工作频率 72 MHz。LQFP64封装两块出头就可以拿到,我们还有开发板和开发资料帮助客户更好的开发。 PY32F040 系列微控…...

Shell判断:模式匹配:case(二)

简单的JumpServer 1、需求:工作中,我们需要管理N多个服务器。那么访问服务器就是一件繁琐的事情。通过shell编程,编写跳板程序。当我们需要访问服务器时,看一眼服务器列表名,按一下数字,就登录成功了。 2、…...

从android.graphics.Path中取出Point点,Kotlin

从android.graphics.Path中取出Point点&#xff0c;Kotlin /*** 从一条Path中获取多少个Point点*/private fun getPoints(path: Path, pointCount: Int): Array<FloatPoint?> {val points arrayOfNulls<FloatPoint>(pointCount)val pm PathMeasure(path, false)…...

力扣C++学习笔记——C++ 给vector去重

要使用std::set对std::vector进行去重操作&#xff0c;您可以将向量中的元素插入到集合中&#xff0c;因为std::set会自动去除重复元素。然后&#xff0c;您可以将集合中的元素重新存回向量中。以下是一个示例代码&#xff0c;演示如何使用std::set对std::vector进行去重&#…...

Flutter笔记:使用相机

Flutter笔记 使用相机 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/134493373 【简介】本文介绍在 Fl…...

包装类型的缓存机制

Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。 Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128&#xff0c;127] 的相应类型的缓存数据&#xff0c;Character 创建了数值在 [0,127] 范围的缓存数据&#xff0c;Boolean 直接返回 True or Fal…...

【BUG】第一次创建vue3+vite项目启动报错Error: Cannot find module ‘worker_threads‘

问题描述 第一次创建vue3vite项目启动报错如下&#xff1a; Error: Cannot find module worker_threadsat Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)at Function.Module._load (internal/modules/cjs/loader.js:562:25)at Module.require (…...

多目标应用:基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化调度(MATLAB代码)

一、微网系统运行优化模型 微电网优化模型介绍&#xff1a; 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、基于非支配排序的鲸鱼优化算法NSWOA 基于非支配排序的鲸鱼优化算法NSWOA简介&#xff1a; 三、基于非支配排序的鲸鱼优化算法NSWOA求解微电网多目标优化…...

网络爬虫|Selenium——find_element_by_xpath()的几种方法

Xpath (XML Path Language)&#xff0c;是W3C定义的用来在XML文档中选择节点的语言 一、从根目录/开始 有点像Linux的文件查看&#xff0c;/代表根目录&#xff0c;一级一级的查找&#xff0c;直接子节点&#xff0c;相当于css_selector中的>号 /html/body/div/p 二、根据…...

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件&#xff0c;实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…...

echarts 多toolti同时触发图表实现

需求背景解决效果ISQQW代码地址energyChart.vue 需求背景 需要实现同x轴&#xff0c;4个图表的的多图表联动效果&#xff0c;且滑动会触发各个图表的tooltip&#xff0c;即一个图表拥有4个tooltip(目前echarts不支持&#xff0c;我这里绕过了这个问题) 解决效果 ISQQW代码地…...

2023.11.22使用flask做一个简单的图片浏览器

2023.11.22使用flask做一个简单的图片浏览器 功能&#xff1a; 实现图片浏览&#xff08;翻页&#xff09;功能 程序页面&#xff1a; 程序架构&#xff1a; 注意&#xff1a;在flask中常会使用src“{{ url_for(‘static’, filename‘images/’ image) }}”&#xff0c…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...