我使用此命令运行程序
command 2> sample.txt
现在文件不断增长,命令将在 5-6 天内退出,我相信文件大小不会以 GB 为单位
我试过这个
echo "" > sample.txt
但这并没有什么区别,文件大小还在增长。
我正在考虑在 1 小时后设置 cron 作业来清空其内容
我怎样才能清空文件的内容
答案1
由于文件由应用程序保持打开状态,我认为您不能按照传统方式清空它。谷歌搜索了一下,我发现了这一点:
假设编写永无止境的文件的代码的作者对 unix 有一点点了解:
- 对于这个过程有一个配置文件,它命名输出日志文件。
- 当进程接收到 SIGHUP 信号时,它会通过重新读取配置文件来“重新配置”自身,如果日志文件的名称发生变化,则关闭旧文件并打开新文件。
对于永不停歇的日志写入程序来说,这几乎是 UNIX 标准。
除此之外,我找不到任何明显的解决方案,因为您使用了>
而不是>>
。下次您可能希望重定向truncate
或类似的东西来避免无限打开日志文件的问题。
答案2
所有你需要的是:
cat /dev/null > sample.txt
或者
>
示例.txt
答案3
以下命令应该有效:
cat /dev/null > sample.txt
答案4
使用logrotate,它就是为了完成这个任务