Unix shell脚本截断大文件

我正在编写一个Unix脚本,它会截断/清空一个文件,当应用程序达到3GB的空间时,这个文件将不断被写/打开。 我知道下面的命令会做到这一点:

cp /dev/null [filename] 

但是我将在一个生产环境中以cron的forms自动运行这个工具 – 只是在这里发布一下,看看你们在做类似的事情时是否遇到了问题。

只是添加另一个答案,

 : > filename 

:在bash中是一个no-op,所以这基本上只是打开文件(这当然会截断文件),然后立即closures它。

编辑:作为shellter评论,你实际上不需要一个命令去redirect:

 $ echo foo > foo.txt $ cat foo.txt foo $ > foo.txt $ cat foo.txt $ 

一个简单的redirect本身将清除该文件。

我在debian上使用了下面的命令

 truncate -s 0 filename 

这对我来说似乎是合理的。 当然,Unix可以让你用50种不同的方式来做这件事。 例如,

 echo -n "" >filename cat /dev/null >filename 

trunc filename

在UNIX的AIX风格上工作