加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2021-06-03 09:00:43 所属栏目:Linux 来源:互联网
导读:在 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 

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

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读