日期:2014-05-16  浏览次数:20735 次

linux 系统rm 删除文件后,磁盘空间不释放
嵌入式linux,用的yaffs文件系统;想升级设备用新的库文件替换掉以前旧的库文件:本来想直接覆盖,提示空间不足,得知cp覆盖是在新的空间放置新文件,然后才将节点修改掉;用rm -rf删除掉那些旧的库文件后,发现磁盘空间没怎么释放,要替换这些文件提示没空间;后来网上查询才知道是被删除的文件正在被进程使用,所以linux系统认为文件还存在,不对其空间进行释放,需要杀掉进程才可以。

但是我这个进程却是不能杀的,影响太大;不知道有没有大神知道有什么其他方法没有啊?可以在不杀进程的情况下,释放掉磁盘空间;或者不用rm删除也行,只要能够让我的新库文件替换掉原来的这些旧库文件~~

拜谢各位了!!
------解决方案--------------------
引用
或者不用rm删除也行,只要能够让我的新库文件替换掉原来的这些旧库文件

试试用这个命令清空文件内容:
>/tmp/test.txt

------解决方案--------------------
使用 sync,将缓存数据保存磁盘试试;删除的文件太小,系统感知不到,多删除一些大文件看看。
------解决方案--------------------
引用:
没那么大,我的NAND一共就只有128M的容量,现在就是因为容量有点小,想通过rm删除释放出一些空间,来进行拷贝工作,但是发现rm有进程调用的库文件时,并不进行空间释放。。。所以不知道怎么搞才好~~
NAND,没接触过。如果单在Linux上面删除100多兆文件就想让系统感知,这个比较难。
------解决方案--------------------
使用 
lsof folder 
------解决方案--------------------
 grep -i delete

最后一列可以看到很多deleted的进程
杀掉这些进程即可释放空间
------解决方案--------------------
建一个新的ramdisk,把之前的拷贝过去,把不需要的删除,这样行不行