如何在linux中清空连续流文件的内容

use*_*027 7 linux centos bash

我有使用此命令运行的程序

command 2> sample.txt

现在该文件不断增长,命令将在 5-6 天内退出,我相信文件大小不会以 GB 为单位

我试过这个

echo "" > sample.txt 但这对它没有任何影响,文件大小正在增长。

我想在 1 小时后设置 cron 作业以清空其内容

我怎样才能清空文件的内容

小智 2

由于该文件由应用程序保持打开状态,因此我认为您不能按照传统方式清空它。谷歌搜索了一下我发现了这个:

假设编写永无止境的文件的代码的作者对 UNIX 了解一点点:

  1. 对于此过程,有一个配置文件,它命名输出日志文件。
  2. 当进程收到 SIGHUP 信号时,它会通过重新读取配置文件来“重新配置”自身,如果日志文件的名称发生更改,则关闭旧文件,打开新文件。

这几乎是永无休止的日志写入程序的 UNIX 标准。

除此之外,我找不到任何明显的解决方案,因为您使用了>and not >>。下次您可能希望通过重定向truncate或类似的方式来避免无限打开日志文件的问题。