我正在尝试编写一个Unix脚本,它将截断/清空一个文件,当文件达到3GB的空间时,该文件将被应用程序连续写入/打开。我知道下面的命令可以做到:
cp /dev/null [filename]
但是我将在生产环境中自动将其作为cron作业-只是在此处发布以查看你们在执行类似操作时是否遇到任何问题。
只需添加另一个答案,
: > filename
[:
是bash中的无操作对象(兼容POSIX),因此,这实际上只是打开要写入的文件(当然会截断该文件),然后立即将其关闭。
编辑:正如Shellter所说,您实际上不需要命令来进行重定向:
$ echo foo > foo.txt
$ cat foo.txt
foo
$ > foo.txt
$ cat foo.txt
$
简单的重定向本身将清除文件。
我在debian上使用了以下命令
truncate -s 0 filename
在我看来,这很合理。当然,Unix可以让您执行大约50种不同的操作。例如,
echo -n "" >filename
cat /dev/null >filename
trunc filename
适用于UNIX的AIX风格