站长网 Linux 分享:rm删除文件空间就释放了吗?

分享:rm删除文件空间就释放了吗?

在 Linux,你是不是曾经天真的以为,使用rm删除一个文件,占用的空间就释放了?事情可能不是常常如人意。 产生一个指定大小的随机内容文件 我们先看一下当前各个挂载目录的空间大小: $df-h /dev/sda11454M280M147M66%/boot 我这里挑选了其中一个结果展示

在 Linux,你是不是曾经天真的以为,使用rm删除一个文件,占用的空间就释放了?事情可能不是常常如人意。

产生一个指定大小的随机内容文件

我们先看一下当前各个挂载目录的空间大小:

$ df -h  

/dev/sda11      454M  280M  147M  66% /boot 

我这里挑选了其中一个结果展示(你可以选择任一挂载目录),接下来准备在/boot下生成一个文件。

首先我们产生一个50M大小的文件:

$ dd if=/dev/urandom of=/boot/test.txt bs=50M count=1 

至此,我们产生了一个50M大小的文件,再看boot下:

$ df -h  

/dev/sda11      454M  312M  115M  74% /boot 

这里你不用关心到底多了多少,你只需要关注,/boot下的文件增多了。

测试程序:

#include<stdio.h>  

#include<unistd.h>  

int main(void)  

{  

    FILE *fp = NULL;  

    fp = fopen("/boot/test.txt", "rw+");  

    if(NULL == fp)  

    {  

       perror("open file failed");  

       return -1;  

    }  

    while(1)  

    {  

       //do nothing  

       sleep(1);  

    }  

    fclose(fp);  

    return 0;  

至于程序本身,也没干啥实际的事情,就是打开一个文件,然后一直循环。编译并运行:

$ gcc -o openFile openFile.c  

$ ./openFile 

打开另外一个窗口,删掉test.txt:

$ rm /boot/test.txt 

再看一下boot空间:

$ df -h  

dev/sda11      454M  312M  115M  74% /boot 

咦?空间大小怎么一点都没变!!明明使用rm把它删除了啊?

我们把openFile程序停掉,再看看:

$$ df -h  

/dev/sda11      454M  280M  147M  66% /boot 

乖乖,空间马上就释放掉了,也就是按照预期,我们的文件被删除了。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/server/linux/2021/0603/9040.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部