linux删除文件但磁盘空间不释放

发现服务器磁盘占用有点大,就准备删除占用了十几G的tomcat日志文件,直接执行rm -f catalina.out命令。删除后通过df -h查看磁盘占用情况,发现服务器磁盘空间还是没有释放。很奇怪,这是怎么回事(原谅我是Linux小白);马上google, 发现如下答案:

linux删除文件,其实只删除文件和系统目录结构的链接。那么如果有进程还在操作这个文件,那么该文件占用的空间不会被释放,只有等没有任何进程操作这个文件了,才能完整的释放文件所占用的空间。但是我不能应该删除一个文件就重启一下应用吧,代价有点高。如果能改变文件的大小不也能达到目的吗?那就清空日志文件吧,命令如下:

echo '' > catalina.out

这样日志文件就变小了,系统就腾出了空间。

后记:

有次在执行命令sudo echo '' > catalina.out 时,系统提示权限不足, 很奇怪啊,我是sudo,怎么还权限不足。google后,找到答案:

原来sudo只对echo命令起作用,但是'' > catalina.out 这个写入文件的操作是不起作用的,此时可以通过如下命令实现:

echo '' | sudo tee -a catalina.out

这样就解决了权限不足的问题。

文章目录
  1. 1. 后记:
|