分享:rm删除文件空间就释放了吗?
在 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 乖乖,空间马上就释放掉了,也就是按照预期,我们的文件被删除了。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |