首页 > 系统相关 >Linux的软硬连接

Linux的软硬连接

时间:2024-07-31 20:25:19浏览次数:18  
标签:文件 软硬 路径 number 目录 Linux inode 连接

目录

见一下软硬连接

特征

 什么是软硬连接,有什么用

软连接有什么用

硬连接有什么用 

总结 


见一下软硬连接

建立一个软连接

 建立硬连接

特征

1. 软连接是一个独立的文件,因为有自己的inode号,由上图可知;

软连接的内容目标文件所对应的路径字符串(linux中路径具有唯一性);所以以后找到一个文件可以通过软连接找到指定的文件;
它类似于windows中的快捷方式;删除软连接不会影响目标文件,就像在windows界面中删除快捷方式不影响程序;但是如果把目标文件删掉那么软连接就没用了;

 删除目标文件,可以看到软连接在高闪,并且cat也没用了因为目标文件已不在

2. 硬连接不是一个独立的文件,因为你没有一个独立的inode号,你用的是目标文件的inode号;

硬连接就是一个文件名和inode的映射关系,建立硬连接就是在指定目录下,添加一个新的文件名和inode number 的映射关系!
所以硬连接根本就没有新建文件,所以就不可能有自己的inode,没有inode就绝对没有数据块,所以说白了硬连接就是在当前目录下新建一个文件名和inode的映射关系!

目标文件的inode number和硬连接的inode number就跟指针一样,指向同一个文件属性,所以文件的引用计数为2;当删除一个映射关系后只有一个指向,所以为1;

可以理解为重命名

3. 属性中有一列硬连接数;

文件的磁盘级引用计数:有多少个文件名字符串通过inode number 指向我(inode)

注意:inode number和inode不一样 ;

删除连接可以用rm也可以用unlink filename

 什么是软硬连接,有什么用

软连接有什么用

使用软连接可以快速达到一个路径比较深的文件;

那么就能理解软连接为什么包含路径?

因为我们知道路径具有唯一性,给我对应的路径就可以让系统对路径进行解析从而找到对应的文件;

硬连接有什么用 

任何一个目录,刚开始新建的时候,引用计数一定是2;在a空目录里面再新建一个b空目录,会使得a空目录的引用计数+1,那么求一个目录内部有几个目录:a目录的引用计数-2;

 那么就可以得出在根目录下有22个子目录

其次硬连接可以做备份; 

在Linux中不允许给目录创建硬连接:避免形成路径环绕


总结 

我们知道定位一个文件只有两种方式:

1. 通过路径(理解为软连接)

2. 直接找到目标文件的inode(理解为硬连接)

但是最终还是要通过inode number的

 文件:

 1. 打开的文件------内核,内存有关

 2. 没有被打开的文件------磁盘,文件系统有关

 我们知道我们的文件分为文本写入和二进制写入:但是我们写入的时候没有管什么形式。其实从操作系统上来讲都是二进制。那么文本写入是什么意思呢?是语言层面上的概念,那么我从磁盘上读的二进制是怎么变为文本内容的呢?就是语言层上提供的缓冲区给我们解释。

标签:文件,软硬,路径,number,目录,Linux,inode,连接
From: https://blog.csdn.net/yiqizhuashuimub/article/details/140802154

相关文章

  • 修改Debian GNU/Linux的默认等宽字体
    背景在使用DebianGNU/Linux的过程中,不少用户尝试修改了系统字体。例如KDEPlasma5的字体设置:然而遗憾的是,DebianGNU/Linux的默认等宽字体似乎还是没有发生变化。以下为修改以上设置后但是没有修改其他文件的情况:解决经过本人的查询,得知了字体配置文件的路径。其中全局配......
  • Linux(2)--Linux的基本功能
    文章目录Linux目录结构文件权限修改文件所有者和关联组用户和用户组添加用户删除或修改用户名修改密码增加用户组删除或修改用户组总结LinuxLinux是一种自由和开放源码的类Unix操作系统,由林纳斯·托瓦兹(LinusTorvalds)于1991年首次发布。Linux以其高效性、灵活性和......
  • 在Linux系统中,etc目录中的profile是什么意思
    在Linux系统中,/etc/profile文件是一个非常重要的系统级配置文件,它主要用于设置系统级的环境变量和执行系统范围内的初始化脚本。以下是关于/etc/profile文件的详细解释:一、基本定义/etc/profile文件位于Linux系统的/etc目录下,这是一个全局性的配置文件,对所有用户都有效。它不......
  • Linux下C++动态链接库的生成以及使用
    目录一.前言二.生成动态链接库三.使用动态链接库一.前言这篇文章简单讨论一下Linux下如何使用gcc/g++生成和使用C++动态链接库(.so文件)。二.生成动态链接库先看下目录结构然后看下代码//demo.h#ifndefDEMO_H#defineDEMO_H#include<string>classDemo{......
  • 局域网这客户端连接MySQL数据库,含(CMT X进阶屏连接MySQL数据库)
    1:首先安装MySQL服务器,服务器端安装的是Serverversion:8.0.37MySQLCommunityServer-GPL版本2.修改MySQL配置文件允许远程访问找到并编辑MySQL配置文件my.ini,该文件通常位于C:\ProgramData\MySQL\MySQLServer<version>\my.ini。使用文本编辑器(VsCode)以管理员身份打开m......
  • linux文件系统
    一、文件系统相关知识Linux中一切皆文件,其中从根目录开始“/”往下呈现倒置的树桩结构。文件系统中有以下特点:1.区分大小写2.每个路径以/分割3.文件名最长255个字节4.蓝色-->目录绿色-->可执行文件红色-->压缩文件浅蓝色-->链接文件灰色-->其他文件5.以点开头的文件是隐......
  • Linux服务器设置jar包开机自启
    一、准备工作将jar包上传到服务器(本文将jar包上传到/home/project/jar/)新建脚本文件(本文将脚本文件放在/home/project/sh/文件下)注:sentinel-dashboard是我的程序名,可根据实际情况替换二、新建、编辑jar包的启动和停止脚本#启动脚本文件vim/home/project/sh/sentine......
  • Linux常见命令及帮助文档使用方法
    一、Linux中的常见命令查看系统信息1.查看CPU[root@Rocky8~]#lscpuArchitecture:x86_64CPUop-mode(s):32-bit,64-bitByteOrder:LittleEndianCPU(s):2...2.查看硬盘[root@Rocky8~]#lsblkNAMEMAJ:MINRMSIZE......
  • Linux 修改密码
    设置空密码Linux每次安装软件都要输入密码,对于个人使用来说这点很烦,因此我们可以在自用电脑上设置空密码。为帐户启用NOPASSWD选项删除帐户密码sudopasswd-d$(whoami)参考:CanIsetmyuseraccounttohavenopassword?|AskUbuntu强制修改密码可以通过切......
  • Linux中expect命令使用报错“invalid command name “Y“ while executing “Y“ invo
    1.执行expect命令的时候一直在报错:spawnshsetup.sh#invalidcommandname"Y"  whileexecuting"Y"  invokedfromwithin"expect"[Y]Yes,Iagree. [N]No,Idon'tagree."",如下图所示:其中的源码:    /usr/bin/expect&l......