码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux软硬链接


    在这里插入图片描述

    文章目录

      • 🐋1. 建立软硬链接现象
      • 🐠2. 软硬链接
        • 🪸2.1 软链接
        • 🪸2.2 硬链接
      • 🐦3. 应用场景
        • 🪹3.1 软链接应用场景
        • 🪹3.2 硬链接应用场景

    🐋1. 建立软硬链接现象

    我们这里给file.txt建立软链接,给test.txt建立硬链接

    ln -s 目标文件 建立软链接名称	#-s表示soft,建立的是软连接 
    ln 目标文件 建立硬链接名称
    
    • 1
    • 2

    image-20231115103945394

    这里发现建立的软连接,是一个独立的文件,有自己独立的inode;而建立的硬链接,不是一个独立的文件,没有独立的inode。

    而且这个前面的计数,由1->2,这个数字就表示建立的硬链接数。

    image-20231115104845999

    🐠2. 软硬链接

    🪸2.1 软链接

    软连接是一个独立的文件,有着自己的inode,也有独立的数据块,数据块里面保存的是指向文件的路径。

    可以将其理解为我们Windows里面的快捷方式,如果将目标文件删除了,那么这个快捷方式也就失效了

    image-20231115111218038
    如果要断掉这个链接,采用指令:

    unlink soft-link
    
    • 1

    这个也可以用来删除文件,其实就是减掉一层引用计数,当引用计数为零的时候,这个文件自己就没有了。

    🪸2.2 硬链接

    我们这里删除test.txt文件,发现它所对应的inode的引用计数从2变为了1。所谓的建立硬链接,其实就是在特定目录的数据块中新增文件名和指向文件的inode编号的映射关系,可以一个inode映射多个文件名,但不能一个文件名映射多个inode,这里面的引用计数,就表示有多少个文件指向这个inode

    image-20231115110223751

    🐦3. 应用场景

    🪹3.1 软链接应用场景

    上面提到了,软链接就像一个快捷方式一样,我们要在当前路径下运行别的路径的可执行程序,我们就得加上路径,如果这个路径太复杂,对应我们来说就会比较麻烦,那么这时候我们就可以采用软连接的方式,在当前目录建立这个可执行程序的软链接。

    image-20231115113805237

    🪹3.2 硬链接应用场景

    硬链接通常用来路径定位,维持Linux的整个目录结构
    我们目录里面会有.和..,这两个就是当前目录和上交目录的硬链接

    image-20231115121334541

    这里就是为什么.表示当前目录,而..表示上级目录了,因为.是当前目录的硬链接,而..是上级目录的硬链接

    这也就是我们是目录创建的时候,引用计数为2

    Linux系统中不可以给目录建立硬链接!

    这里的.和..这两个目录的硬链接是Linux做了特殊处理,有且仅有这两个目录的硬链接。

    如果我们给目录建立硬链接,这样就会引发环的问题,系统在查找的时候,不会对.和..作为路径搜索
    在这里插入图片描述


    那么本次的分享就到这里了,我们下期再见,如果还有下期的话

  • 相关阅读:
    java毕业生设计校园社团管理系统计算机源码+系统+mysql+调试部署+lw
    解决5053无法安装驱动的故障
    【毕业设计】深度学习验证码识别算法研究与实现 - python 机器视觉
    码神之路博客部署教程【完整版】基于Linux的Docker部署教程非常详细
    Java-使用sqlSessionTemplate实现批量更新-模拟mybatis 动态sql
    ORACLE获取 表的主键id值
    数据库常用命令——单表查询
    成人专升本
    gitlab的使用方法,详解gitlab操作
    opencv安装成功之后运行代码还是出错
  • 原文地址:https://blog.csdn.net/Dirty_artist/article/details/134417475
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号