在Linux环境下,经常遇到暂时无法删除文件,但需要清空文件内容的场景。比如日志文件,生成了大量的日志,而此时又无法直接删除该文件,因为程序可能正在使用。此时就可以考虑通过命令来清空文件中的内容来实现。

实现前提:对文件有写(write)权限。

清空实现

以下均为完整的执行命令,将filename替换为要执行清空的文件即可。

方式一:

:> filename

方式二:

> filename

方式三:

echo "" > filename

方式四:

echo filename

方式五:

cat /dev/null  > filename

其中,方式一、方式二、方式五,执行之后,对应的文件大小都是0KB,通过echo执行的两种方式文件大小都为1KB。也就是说,本质上通过echo方法是向文件中写入了数据。

个人建议通过第二种方式来进行清空,使用起来也简单方便。

而方式五,可以把/dev/null看做“黑洞”,所有写入它的内容都会永远消失,而尝试从她那里读取内容则什么也读不到。/dev/null在命令行和脚本中都非常有用。

博主简介:《SpringBoot技术内幕》技术图书作者,酷爱钻研技术,写技术干货文章。

公众号:「程序新视界」,博主的公众号,欢迎关注~

技术交流:请联系博主微信号:zhuan2quan

更多推荐

Linux 清空文件内容