inode以及软硬链接

2023-05-16

一、inode

①使用ls -l查看文件元数据,用来描述数据属性
这里写图片描述

模式  硬链接数 文件所有组  组   大小      最后修改时间     文件名

②使用stat查看,查看文件信息。
这里写图片描述

//Access:最后访问时间
//Modify:文件内容最后修改时间
//Chage:属性最后修改时间
//链接数:即有多少个文件名指向这个inode

③文件系统的构成

这里写图片描述

④inode

1)概念
存储文件信息的区域,中文译名为索引节点。
2)查看inode号

ls -i 文件名
//ll与ls -l功能一样
//ls -a:显示当前目录下所有文件,包括隐藏文件。

3)inode的大小
一般是128字节或256字节,inode节点的个数一般格式化的时候就确定了,一般每1KB或2KB就设置一个inode。可以使用df -i命令,查看每个硬盘分区的inode的总数和已经使用的数量。
这里写图片描述
4)一些说明
每个inode都有一个号码,操作系统使用inode号码来识别不同的文件,通过inode号可以找到文件所在的block,读取数据。
5)目录文件
目录也是一种文件,打开目录,其实相当于打开目录文件,目录文件的结构也是非常简单,是一系列目录项的列表。
这里写图片描述
6)理解目录权限的可执行
这里写图片描述

二、硬链接

1.概念
一般情况下,文件名和inode号是一一对应的,但是也有特殊情况,多个文件名可以指向同一个inode号,两个文件的链接状态完全相同,它们被称为指向文件的硬链接。意味着,可以用不同的文件名,去访问同样的内容,对文件内容修改,会影响到所有文件名,删除一个文件名,也不会影响另一个文件名的访问。
2.创建硬链接

//ln abc def
//abc是源文件,def是目标文件,但是创建之前,目标文件应该是不存在的。

这里写图片描述
3.删除文件
在目录中对应的记录删除,将硬链接数减1,如果为0,则将对应的磁盘释放。
4.目录文件的硬链接数
创建目录时会默认生成两个目录项”.”和”..”
“.”的inode是当前目录的inode,等同于当前目录的硬链接。
“..”的inode是当前目录的父目录的inode号码,等同于父目录的硬链接。
所以任何一个目录的硬链接总数,总是等于2加上它的子目录总数(含隐藏目录)。

三、软链接

1.概念
源文件与目标文件的inode号不一样,但是目标文件的内容存放的是源文件的路径,因此无论打开哪个文件,打开的都是源文件的内容。其实目标文件就相当于windows下的快捷方式,当你把源文件删除时,打开目标文件肯定会报错。
2.创建软链接

//ln -s 源文件 目标文件
//创建软链接之前,目标文件应该是不存在的。

这里写图片描述
软链接与硬链接最大的不同的是:目标文件指向源文件的文件名,而不是源文件的inode号。

四、inode的特殊现象

1.当一个文件移动或重命名的时候,文件的inode号不变
2.打开一个文件后,系统以inode识别文件,不在考虑文件名,所以,通常来说系统无法从inode号获取到文件名。
3.遇到特殊字符,rm删不了时,可以直接删除inode,从而删除文件。使用以下命令。

find . -inum 137872 -exec rm -i {} \;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

inode以及软硬链接 的相关文章

  • 硬盘inode节点简单介绍

    一 inode是什么 xff1f 理解inode xff0c 要从文件储存说起 文件储存在硬盘上 xff0c 硬盘的最小存储单位叫做 34 扇区 34 xff08 Sector xff09 每个扇区储存512字节 xff08 相当于0 5K
  • inode节点(详解)

    首先 xff0c 要明确理解inode是理解Linux Unix文件系统和硬盘存储的基础 1 什么是inode xff1f 理解inode xff0c 要从文件存储说起 文件存储在硬盘上 xff0c 硬盘的最小存储单位叫做 扇区 每个扇区能
  • inode以及软硬链接

    一 inode 使用ls l查看文件元数据 xff0c 用来描述数据属性 模式 硬链接数 文件所有组 组 大小 最后修改时间 文件名 使用stat查看 xff0c 查看文件信息 span class hljs comment Access
  • linux 下理解文件系统的inode

    目录 前言一 inode是什么 xff1f 三 inode的大小四 inode号码五 目录文件六 硬链接七 软链接八 inode的特殊作用 前言 inode是一个重要概念 xff0c 是理解Unix Linux文件系统和硬盘储存的基础 我觉
  • 从指定块地址中读出数据及F2FS inode分析

    有时候我们为了分析文件系统结构等目的 xff0c 需要从指定的块地址中读取数据出来分析 这时候我们可以用两个Ubuntu自带的工具 xff0c filefrag用于获取inode的块地址 xff0c dd命令或者nvme cli 仅适用于N
  • linux/fs/inode.c/_bmap() and bmap()

    bmap函数的实体 用来实现文件数据块号到设备中的逻辑块号的映射 inode是文件i节点指针 xff0c block是要操作的文件数据块号 xff0c creat为创建标志 有0和1两种情况 若create为0 xff08 不置位 xff0
  • PHP获取文件的修改时间、访问时间和inode 修改时间

    filemtime string filename 返回文件上次被修改的时间 xff0c 出错时返回 FALSE 时间以 Unix 时间戳的方式返回 xff0c 可用于 date 例如 xff1a a 61 filemtime 34 log
  • inode的若干锚

    insert inode hash hash an inode 64 inode unhashed inode 64 hashval unsigned long value used to locate this object in the
  • 如何在 ZFS 中设置文件创建时间?

    我刚刚有一台运行 ZFS 的 NAS 我想在将文件传输到其中时保留创建时间 linux ext4 数据现在所在的位置 和 zfs 都存储创建时间或出生时间 对于 zfs 甚至可以通过 stat 命令来报告 但我一直无法弄清楚如何设置文件的创
  • 如何在Linux上高效监控目录变化?

    我正在使用 Magento 有一个功能可以将 CSS 和 Javascript 合并到一个大文件中 不管其优点和缺点 都存在以下问题 最终文件会在多个级别进行缓存 包括但不限于 亚马逊云前 代理服务器 客户端浏览器缓存 Magento 使用
  • 每当在Linux中使用inode创建新文件时,如何获取文件名以及文件的绝对路径?

    我用我的linux操作系统 CentOS 做了一些实验 我想跟踪在同一环境下创建的所有工具日志 工具生成相应的日志 log extn 来跟踪这些更改我编写了一个perl观察程序 它实际上监视目录我设置的 当创建新文件时 它将显示在输出中 但
  • 有什么方法可以使用给定的索引节点号搜索文件或文件名吗?

    我正在从用户那里获取索引节点号 并且必须在文件系统中搜索该文件 如何搜索 inode 编号 我必须使用 C 和 unix 来完成此操作 到目前为止 这是我的代码 include
  • 如何从给定的 inode 获取路径名或 dentry 或结构文件?

    我需要知道如何获取路径名或dentry or struct file来自给定的索引节点 我正在使用file open获得struct file来自路径名 但总是引起内核恐慌 我需要一种方法来将我的 inode 列表中的 inode 与路径名
  • 在 Linux 中检测文件移动或重命名的最佳方法?

    某些解决方案可能适用于 Windows 但是我不熟悉 Windows 操作系统 因此这将重点关注 Linux 据我了解 Unix文件系统都有inode的概念 这是文件系统元数据和 文件 存储的地方 因此我想知道是否可以使用索引节点号和一些附
  • 读取超级块

    我知道在 Unix 特别是 Mac OS X 中 超级块存储有关磁盘上数据布局的信息 包括 inode 开始和结束的磁盘地址 我想扫描程序中的索引节点列表以查找已删除的文件 如何找到 inode 开始的磁盘地址 我查看了 statfs 命令
  • 了解 Ubuntu 中不同对象的相同 inode 编号

    为什么 cdrom 的 inode 号与 cdrom 的 inode 号相同 sys devices platform power在Ubuntu中 以下在我的 Ubuntu 中具有相同的 inode 编号 media BACKUP 1 MI
  • 每个索引节点有多少字节?

    我需要创建大量不是很大的文件 如 4kb 8kb 这在我的计算机上是不可能的 因为它会将所有 inode 占用高达 100 并且我无法创建更多文件 df i dev sda5 Filesystem Inodes IUsed IFree IU
  • 找到具有相同索引节点的所有文件的最快方法是什么?

    我知道的唯一方法是 find home xdev samefile file1 但确实很慢 我想找到一个类似的工具locate 当你有很多文件时 真正的问题就出现了 我认为操作是 O n 没有来自的映射inode命名 唯一的方法是遍历整个文
  • 为什么JDK NIO使用这么多anon_inode文件描述符?

    我正在使用 Sun 的 JDK 1 6 0 26 和 NIO 带有 Netty 在 lsof 中我看到数百个文件描述符anon inode lsof np 11225 fgrep w anon inode java 11225 nobody
  • 是否可以从打开的文件描述符重新创建文件?

    现在 这个问题可能看起来很奇怪 而且可能确实如此 但为了提供一些背景信息 我一直在阅读this http linuxgazette net 105 pitcher html要了解 i 节点 作者给出了一个有趣的例子 FILE fp fp f

随机推荐

  • window11 安装linux子系统(一键安装)并连接到vs code

    文章目录 一 window 使用linux环境的几种方式二 安装wsl1 进入这个目录下 xff0c 将cmd exe已管理员身份运行2 命令行输入以下命令 xff0c 然后重启计算机3 再次已管理员身份打开 xff0c 执行命令 xff0
  • QT 利用URL Protocol实现网页调起本地程序

    一 QT 安装时脚本注入注册表或者自己添加 span class token comment 依次为目录 键 值 xff0c 34 URL Protocol 34 这个键必须有 span WriteRegStr HKCR span clas
  • PC 配置jenkins自动打包

    文章目录 一 下载jenkins运行环境二 下载jenkins三 安装 qt 5 12 2 和 VS 2017四 安装git并配置gitlab五 jenkins配置git 一 下载jenkins运行环境 java jdk 11 镜像下载地址
  • 心系Flyme

    我来自陕西省神木县 xff0c 大学我考入了陕西科技大学 xff0c 成为了一名信息与计算科学专业的学生 xff0c 希望在以后的道路中 xff0c 通过我自己的努力 xff0c 提升自己的价值 在大二大三学习编程 xff0c 希望自己可以
  • C语言的编译链接过程

    编写的一个C程序 xff08 源程序 xff09 xff0c 转换成可以在硬件上运行的程序 xff08 可执行程序 xff09 xff0c 需要进行翻译环境和运行环境 翻译环境则包括两大过程编译和链接 xff0c 经过编译和链接过程便可形成
  • 函数的调用过程(栈帧的创建和销毁)

    为了更好地认识函数的调用过程 xff0c 我们可以用反汇编代码去理解学习 一 基本概念 1 栈帧 xff08 过程活动记录 xff09 xff1a 是编译器用来实现函数调用的一种数据结构 xff0c 每个栈帧对应一个未运行完的函数 xff0
  • 树莓派pico刚买来怎么用?

    第一次使用 xff0c 首先按住主板上的白色按钮 xff0c 然后另一只手把数据线插在主板上 xff0c 直到你的电脑提示有新设备输入 xff0c 提示可以是声音 xff0c 可以是设备管理器多了一个U盘 要想得到提示 xff0c 你要打开
  • C语言动态顺序表

    顺序表是将表中的节点依次存放在计算机内存中一组地址连续的存储单元中 xff0c 表可以动态增长 xff0c 尾插元素 xff0c 尾删元素 xff0c 头插元素 xff0c 头删元素 xff0c 打印元素 xff0c 查找元素 xff0c
  • C语言笔记1

    假定程序运行环境为VC6 0 xff0c 缺省为四字节对齐 xff0c CPU xff08 32小字节序处理器 xff09 1 char x 61 34 ab0defg 34 char y 61 39 a 39 39 b 39 39 0 3
  • 【C++三大特性】继承

    如有疑问 xff0c 欢迎讨论 xff0c QQ xff1a 1140004920 一 继承的概念 1 原有的类为基类 xff0c 又称父类 xff0c 对基类进行扩展产生的新类称为派生类 xff0c 又称子类 xff0c 继承可以使代码复
  • C++实现顺序表及双向链表

    顺序表 include lt iostream gt include lt assert h gt using namespace std typedef int DataType class SeqList public 默认的构造函数
  • 二叉树

    一 二叉树 是结点的一个有限集合 xff0c 每个根结点最多只有两颗子树 xff0c 二叉树有左右之分 xff0c 子树的次序不能颠倒 二 二叉树的种类 1 满二叉树 xff1a 每个结点都有左右子树 xff0c 且叶结点都在同一层 2 完
  • 进程间通信----管道、消息队列、共享内存、信号量

    一 进程间通信 xff08 Inter Process Communication xff09 1 目的 1 数据传输 2 资源共享 3 通知事件 4 进程控制 注 xff1a 每个进程都有各自不同的用户地址空间 xff0c 进程之间要交换
  • 进程基本概念、进程地址空间

    强调内容今天来谈一谈进程的一些基本概念 xff0c 认识一些进程状态 xff0c 重新认识一下程序地址空间 xff08 进程地址空间 xff09 xff0c 进程调度算法 xff0c 环境变量等属性 一 进程 1 什么是进程 xff1f 程
  • 何为缓存?

    一 缓存 xff08 cache xff09 1 概念 xff1a 数据交换的缓冲区 xff08 称作Cache xff09 缓存是一块内存芯片 xff0c 具有极快的存取速率 xff0c 它是硬盘内部存储和外界接口之间的缓冲器 xff0c
  • 计算机的组成

    一 冯诺依曼系统 1 计算机硬件 由运算器 控制器 存储器 输入设备 输出设备组成 2 计算机内部采用二进制表示指令和数据 3 注 xff1a 1 输入设备 xff1a 键盘和鼠标等 2 输出设备 xff1a 显示屏 xff0c 打印机等
  • fd与FILE以及fork缓冲问题

    一 文件描述符 fd 1 文件描述符其实就是一个非负的小整数 是文件指针数组的下标 2 让我们看一看0 xff0c 1 xff0c 2 xff0c 代表什么 xff1f span class hljs preprocessor includ
  • Kali Linux使用体验简述

    在以前的版本里Kali Linux默认用户是root用户 xff0c 这样设计的目的是避免每次都要输入root密码 xff0c 而如今需要root密码的程序明显少于从前 xff0c Kali Linux也做出了相应的改革 xff0c 默认用
  • 随身WiFi410的板子刷Debian安装青龙面板+狗东脚本最详细教程

    前几天 xff0c 我发布了一个410刷入debian的教程 很多老哥可能觉得刷入debian没有什么用 xff0c 今天我就教大家如何安装青龙面板 xff0c 并且安装脚本实现自动白嫖狗东的豆子 青龙面板 43 狗东脚本 自动领豆子红包
  • inode以及软硬链接

    一 inode 使用ls l查看文件元数据 xff0c 用来描述数据属性 模式 硬链接数 文件所有组 组 大小 最后修改时间 文件名 使用stat查看 xff0c 查看文件信息 span class hljs comment Access