【Linux】解答:为什么创建目录文件,硬链接数是2;创建普通文件时,硬链接数是1?(超详细图文)

server/2024/10/17 22:59:17/

前言

大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C++的老铁
主要内容含:
在这里插入图片描述

欢迎订阅 YY滴C++专栏!更多干货持续更新!以下是传送门!

  • YY的《C++》专栏
  • YY的《C++11》专栏
  • YY的《Linux》专栏
  • YY的《数据结构》专栏
  • YY的《C语言基础》专栏
  • YY的《初学者易错点》专栏
  • YY的《小小知识点》专栏
  • YY的《单片机期末速过》专栏
  • YY的《C++期末速过》专栏
  • YY的《单片机》专栏
  • YY的《STM32》专栏
  • YY的《数据库》专栏
  • YY的《数据库原理》专栏

目录

  • 一.前情回顾:
    • 1.查看文件元数据与inode编号
    • 2.硬链接文件不属于真正意义上的文件
    • 3.Linux中不允许用户对目录建立硬链接文件
  • 二.解析部分:
  • 三.理解原理后,试着分析<在newdir1下,再创建newdir2,newdir1硬链接数变成3>

一.前情回顾:

1.查看文件元数据与inode编号

  • 我们使用ls -l的时候看到的除了看到文件名,还看到了文件元数据。
[root@localhost linux]# ls -l
总用量 12
-rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out
-rw-r--r--. 1 root root 654 "9月 13 14:56" test.c
  • 分别对应含义如下图所示
    在这里插入图片描述
  • 使用ls -li,还可以看到 inode编号
[root@localhost linux]# ls -l
总用量 12
54329 -rwxr-xr-x. 1 root root 7438 "9月 13 14:56" a.out

2.硬链接文件不属于真正意义上的文件

※为什么软连接是一个独立的文件而硬链接不是? 是因为软连接 有独立的inode编号。

  • 我们对test2创建一个硬链接文件test1.hard.link
  • 发现 二者inode编号一致
    在这里插入图片描述

3.Linux中不允许用户对目录建立硬链接文件

  • 为了1. 防止目录循环引用 2. 保护文件系统结构完整性 3.简化文件系统设计,Linux中不允许用户对目录建立硬链接文件

二.解析部分:

  • 我们分别创建一个普通文件testfile和一个目录文件testdirls -li查看源目录;
  • 发现创建目录,硬链接数是2;创建文件时,硬链接数是1

在这里插入图片描述

  • 普通文件,只有 文件名 和inode编号有映射关系 所以硬链接数为1
    在这里插入图片描述

  • 我们进入空目录,任何一个空目录, 下面都有两个隐藏的 硬链接文件

. 表示当前目录——————因为这个文件(指向)的inode,和目录文件本身的inode是同一个
..表示上一级目录

在这里插入图片描述

  • 所以目录文件,除了 文件名 和inode有映射关系 ,还有目录文件下面的硬链接. 和inode有映射关系 所以硬链接数为2
    在这里插入图片描述

三.理解原理后,试着分析<在newdir1下,再创建newdir2,newdir1硬链接数变成3>

  • 在newdir1下,再创建newdir2,发现newdir1的硬链接数变成了3
    在这里插入图片描述

  • 我们查看下newdir2的隐藏文件(硬链接),又有一个硬链接文件指向了他

在这里插入图片描述


http://www.ppmy.cn/server/132606.html

相关文章

TongWeb跨域问题处理

这里写自定义目录标题 现象排查思路 现象 f12控制台报错Access to XMLHttpRequest at ‘xxx’ from origin ‘xxxx’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is pr…

人工智能和机器学习之线性代数(二)

人工智能和机器学习之线性代数(二) 本文Linear Algebra 101 for AI/ML – Part 2将通过介绍向量的点积(dot Product)、Embedding及其在相似性搜索中的应用来建立这些基础知识。 将学习Embedding&#xff0c;Embedding是表示概念、对象和想法的特殊类型的向量。Embedding在整个…

Java常问面试题——选择题和问答题

一、选择题 1、ArrayList list new ArrayList(20);语句中的 list 集合大小扩充了几次&#xff08;A&#xff09; A.0 B.1 C.2 D.3 2、如果去掉了 main 方法的 static 修饰符会怎样&#xff08;B&#xff09; A.程序无法翻译 B.程序能正常编译&#xff0c;运行时或抛出No…

【1-1】STM32F407学习笔记之中断

一、异常与中断的概念 《Cortex M3与M4权威指南》章节4.5 P104-106 翻译:异常(Exceptions)在编程中是指那些导致程序流程改变的事件。当异常发生时,处理器会暂停当前执行的任务,转而执行一个称为异常处理程序(exception handler)的程序部分。处理完毕后,处理器会恢…

Gin框架操作指南01:开山篇

Gin是目前最流行&#xff0c;性能最好的的GoWeb框架&#xff0c;几乎成为了学习GoWeb必备的知识。本人最近也在学Gin&#xff0c;在b站搜了很多教程&#xff0c;发现有的教程不够详细&#xff0c;有的教程工具包安装有问题&#xff0c;而官方文档的很多示例代码又不全&#xff…

linux中将普通用户添加到系统白名单中

打开 sudoers文件&#xff0c;在Allow root to run any commands anywhere 后面 添加一条&#xff08;把上面的一条内容复制下来 修改用户名即可&#xff09;

85 外网用户通过域名访问内网服务器

1. 组网需求 某公司内部对外提供Web服务&#xff0c;Web服务器地址为10.110.10.2/24。 该公司在内网有一台DNS服务器&#xff0c;IP地址为10.110.10.3/24&#xff0c;用于解析Web服务器的域名。 该公司拥有两个外网IP地址&#x…

【Python爬虫】看电影还在用VIP?一个python代码让你实现电影自由!附源码

今日主题 如何用Python解析vip电影。 什么是vip电影&#xff1f; 这些vip电影啊&#xff0c;想要观看的话&#xff0c;必须充值会员&#xff0c;否则没法看。 比如这个&#xff1a; 这些vip电影解析后呢&#xff1f; 不需要会员&#xff0c;不需要登录&#xff0c;可以直接…