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

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

清空实现

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

方式一:

:> filename

方式二:

> filename

方式三:

echo "" > filename

方式四:

echo filename

方式五:

cat /dev/null  > filename

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

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

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



Linux 清空日志文件内容插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.choupangxia.com/2021/10/23/linux-empty-log-file/