IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux系统编程 48 目录项和inode -> 正文阅读

[系统运维]Linux系统编程 48 目录项和inode

学习笔记

inode
在硬链接的时候,涉及到inode
使用stat filename

如果给一个文件创建硬链接的时候,
那个和源文件有相同的inode

在了Linux下创建硬链接和软链接(也就是符号链接)都是用ln命令,
当使用ln命令时加上-s选项就表示创建的连接文件是一个软链接,
如果使用ln命令时不带-s选项就表示创建的是一个硬链接。
命令的格式则是:ln 原文件 链接文件

$cp -r 46lseek/ 47inode
$cd 47inode/
$ls
dict.cp ? ? ? f.c ? ? ?lseek_test ? ?lseek.txt ?trunc
dict.txt.txt ?lseek.c ?lseek_test.c ?makefile ? trunc.c
$stat f.c
? File: f.c
? Size: 500 ? ? ? ?? ?Blocks: 8 ? ? ? ? ?IO Block: 4096 ? regular file
Device: 805h/2053d?? ?Inode: 669607 ? ? ?Links: 1
Access: (0744/-rwxr--r--) ?Uid: ( 1000/ ?ubuntu) ? Gid: ( 1000/ ?ubuntu)
Access: 2021-12-23 22:46:19.623477118 +0800
Modify: 2021-12-23 22:46:19.639477118 +0800
Change: 2021-12-23 22:46:19.639477118 +0800
?Birth: -

inode是一个整数。

inode的本质和文件描述符很类似。其本质是一个结构体,存储着文件的属性:
文件权限,文件类型,大小,访问修改时间,用户,所属组,盘块位置
就是ls -l 查看出来的东西。
大多数inode放在磁盘上,少量常用和近期使用的的inode会被缓存到内存里。

通过ls -li 来查看各个文件的文件inode数

$ls -li
total 5540
669609 -rw-rw-r-- 1 ubuntu ubuntu ? ? 250 12月 23 22:46 dict.cp
669604 -rwxr--r-- 1 ubuntu ubuntu 5600268 12月 23 22:46 dict.txt.txt
669607 -rwxr--r-- 1 ubuntu ubuntu ? ? 500 12月 23 22:46 f.c
669603 -rw-rw-r-- 1 ubuntu ubuntu ? ? 496 12月 23 22:46 lseek.c
663261 -rwxrwxr-x 1 ubuntu ubuntu ? 19904 12月 23 22:46 lseek_test
669605 -rw-rw-r-- 1 ubuntu ubuntu ? ? 369 12月 23 22:46 lseek_test.c
669602 -rw-rw-r-- 1 ubuntu ubuntu ? ? ?22 12月 23 22:46 lseek.txt
669595 -rwxr--r-- 1 ubuntu ubuntu ? ? 178 12月 23 22:46 makefile
669608 -rwxrwxr-x 1 ubuntu ubuntu ? 19616 12月 23 22:46 trunc
669606 -rw-rw-r-- 1 ubuntu ubuntu ? ? 284 12月 23 22:46 trunc.c
$ln f.c f_hard.c
$ls -li
total 5544
669609 -rw-rw-r-- 1 ubuntu ubuntu ? ? 250 12月 23 22:46 dict.cp
669604 -rwxr--r-- 1 ubuntu ubuntu 5600268 12月 23 22:46 dict.txt.txt
669607 -rwxr--r-- 2 ubuntu ubuntu ? ? 500 12月 23 22:46 f.c
669607 -rwxr--r-- 2 ubuntu ubuntu ? ? 500 12月 23 22:46 f_hard.c
669603 -rw-rw-r-- 1 ubuntu ubuntu ? ? 496 12月 23 22:46 lseek.c
663261 -rwxrwxr-x 1 ubuntu ubuntu ? 19904 12月 23 22:46 lseek_test
669605 -rw-rw-r-- 1 ubuntu ubuntu ? ? 369 12月 23 22:46 lseek_test.c
669602 -rw-rw-r-- 1 ubuntu ubuntu ? ? ?22 12月 23 22:46 lseek.txt
669595 -rwxr--r-- 1 ubuntu ubuntu ? ? 178 12月 23 22:46 makefile
669608 -rwxrwxr-x 1 ubuntu ubuntu ? 19616 12月 23 22:46 trunc
669606 -rw-rw-r-- 1 ubuntu ubuntu ? ? 284 12月 23 22:46 trunc.c

这里面的 1 2 就是inode数


文件由两部分组成:
1.dentry
2.inode

多提一嘴,当给一个文件创建硬链接的时候,这些硬链接有相同的inode
,但是有不同的目录项。


dentry (目录项:包含文件名,inode的编号)->inode存储文件的属性 -> 文件内容


删除一个硬链接,是把硬链接数字 - 1,实际上就是去掉一个目录项
当硬链接树为0,说明这个inode没有被引用。但是注意即使是硬链接数为0,
磁盘的内容也没有被擦除。磁盘空间只能覆盖。
所以安全起见,要注意格式化。但是格式化还是可以恢复数据。只要重新建立inode->磁盘空间(数据恢复)
所以要用数据覆盖安全些

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:55:01  更:2021-12-24 18:56:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:02:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码