Linux基础系列(五)Linux系统文件删除原理

文件删除生成场景案例解决实战à web服务器磁盘满故障深入解析

参考博文:http://oldboy.blog.51cto.com/2561410/612351

Linux的文件名是存在父目录的block里面,并指向这个文件的inode节点,这个文件的inode节点再标记指向存放这个文件的block的数据块。我们删除一个文件,实际上并不清楚inode节点和block的数据。只是在这个文件的父目录里面的block中,删除这个文件的名字,从而使这个文件名消失,并且无法指定这个文件的inode节点,当没有文件名指向这个inode节点的时候会同时释放inode节点和存放这个文件的数据块,并更行inodeMAP和blockMAP今后让这些位置可以用于防止其他文件数据。

i_link=2  i_count=1  文件删除的条件 i_link=0并且i_count=0

Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。

时间: 2024-10-10 23:52:08

Linux基础系列(五)Linux系统文件删除原理的相关文章

linux基础学习-9.6-文件删除原理

1.文件删除原理 rm 删除文件删除的只是文件名 2.控制文件删除:以下两个条件同时具备才生效 1.文件的硬链接数,有一个硬链接i_link +1 减少一个硬链接,i_link-1 2.是否有进程占用使用这个文件,有一个进程占用这个文件,i_count+1 当没有进程调用时i_count=0 当i_link=0并i_count=0时,文件被删除 3.文件删除,磁盘空间不释放的原因 1.hardlink 2.另一个进程还在使用这个文件 3.磁盘空余空间维护出现问题 ln 源 目标 [[email 

Linux基础系列之---Linux的常见发行版

Linux的常见发行版有几大分支: Linux发行版有数百种之多,我们只列举常见的几种发行版有:RedHat.Debian.Slackware.Gentoo等几大分支,除介绍的几大分支外,还有基于以上分支的二次发行版,如:基于RedHat的二次发行版CentOS.基于Debian的二次发行版Ubutu.knopix等.还有基于二次发行版再此封装发行的版本,如基于Ubutu发行的mint等. 1.RedHat分支 Redhat 9.0(个人版.9.0后交给了Fedora进行维护) RedHat E

Linux基础系列之--Linux基础入门

1.Linux相关的开源协定有: GPL:General Public License(通用公共许可证) LGPL GPLv2 BSD: Apache (1).GPL: DPL是GNU General Public License的缩写,是GNU通用公共授权非正式的中文翻译.它并非由自由软件基金会所发表,亦非使用GNU通用公共授权的软件的法定发布条款─只有GNU通用公共授权英文原文的版本始具有此等效力. 详细信息参见链接:https://baike.baidu.com/item/GPL/2357

Linux 基础知识(五)

一.每12小时备份并压缩/etc/目录到/back目录中,保存文件名格式为,etc-年-月-日-时-分.tar.gz) crontab -e *12/*** /usr/bin/tar -czf `date +%F-%H-%M`-etc.tar.gz /etc/ ??二.rpm包管理功能总结以及实例应用演示rpm命令:rpm [OPTIONS] [PACKAGE_FILE]安装:-i, --install升级:-U, --update, -F, --freshen卸载:-e, --erase查询:

03.风哥Oracle数据库入门必备Linux基础系列视频教程(Oracle零基础教程)

03.风哥Oracle数据库入门必备Linux基础系列视频教程(Oracle零基础教程)链接:https://pan.baidu.com/s/19C4vzPKq8EwKtJublmIB3w 提取码:lez8 请分享链接到5个QQ IT交流群后,加入以下QQ群找群主获取更多免费视频. 更多视频教程,请加入QQ群(只加一个即可):189070296336282998 原文地址:http://blog.51cto.com/oracle18c/2314272

linux基础知识学习-linux架构

硬盘分区: 第一扇区(512bytes): MSR:master boot record (446bytes)主引导分区 partion table:(64bytes)分区表,四个.可以是主分区(primary)或者扩展分区(Extended), 每个表指向磁盘某段区间.最多只有一个扩展分区,扩展分区里面可以扩展多个逻辑分区.其余扇区(柱面(cylinder)):实际存储的地方 linux 中(\etc/fstab):IDE  总线形式不同 (a~d)/dev/hda SATA,SCSI,USB

[Linux基础环境/软件]Linux下安装mysql

我是使用免安装的包mysql-5.5.28-linux2.6-x86_64.tar.gz(在http://dev.mysql.com/downloads/可以下载到最新的包)的.直接解压,然后配置,初始化数据库,启动即可. 安装步骤有: 解压和建立软链: 配置文件和配置参数: 初始化数据库: 启动和关闭: 建立数据库用户和授权. 1. 解压和建立软链: #tar xzvf mysql-5.5.28-linux2.6-x86_64.tar.gz #在/usr/local目录下 #ln -s mys

【C++自我精讲】基础系列五 隐式转换和显示转换

0 前言 1)C++的类型转换分为两种,一种为隐式转换,另一种为显式转换. 2)C++中应该尽量不要使用转换,尽量使用显式转换来代替隐式转换. 1 隐式转换 定义:隐式转换是系统跟据程序的需要而自动转换的. 1)C++类型(char,int,float,long,double等)的隐式转换: 算术表达式隐式转换顺序为: 1.char - int - long - double 2.float - double //1)算术表达式 int m = 10; double n = m;//n = 10

Linux基础系列(1)

Linux基础      首先说一下Linux哲学思想        1 一切皆文件        2 小而美的应用程序        3 组合小程序        4 避免令人困惑的图形界面        5 配置数据储存在文本中    然后说一下shell,Shell是用户与Linux操作系统沟通的桥梁  Linux shell类型储存在/etc/shells文件中,cat查看一下.     [[email protected] ~]# cat /etc/shells     /bin/sh

Coding之路——掌握Linux基础(1):Linux如何使用主机与磁盘

1.磁盘规划与主机划分 (1)硬件在Linux中文档名: ——IDE硬盘:/dev/hd[a-d] ——SCSI/SATA/USB硬盘:/dev/sd[a-p] ——USB闪存:/dev/sd[a-p] ——软盘驱动器:/dev/fd[0-1] ——打印机:/dev/lp[0-2](25针),/dev/usb/lp[0-15](USB) ——鼠标:/dev/usb/mouse[0-15](USB),/dev/psaux(PS2) ——当前CDROM/DVDROM:/dev/cdrom ——当前鼠