我正在尝试编写一个Unix脚本,它将截断/清空一个文件,当文件达到3GB的空间时,该文件将被应用程序连续写入/打开。我知道以下命令可以做到:
cp /dev/null [filename]
但是我将在生产环境中自动将其作为cron作业-只是在此处发布以查看你们在执行类似操作时是否遇到任何问题。
我正在尝试编写一个Unix脚本,它将截断/清空一个文件,当文件达到3GB的空间时,该文件将被应用程序连续写入/打开。我知道以下命令可以做到:
cp /dev/null [filename]
但是我将在生产环境中自动将其作为cron作业-只是在此处发布以查看你们在执行类似操作时是否遇到任何问题。
Answers:
只是添加另一个答案,
: > filename
:
是bash中的无操作对象(符合POSIX),因此这实际上只是打开文件进行写入(当然会截断该文件),然后立即将其关闭。
编辑:正如Shellter所说,您实际上并不需要命令来进行重定向:
$ echo foo > foo.txt
$ cat foo.txt
foo
$ > foo.txt
$ cat foo.txt
$
一个简单的重定向本身将清除文件。
> filename
(我确定您知道)。祝你们好运。
我在debian上使用了以下命令
truncate -s 0 filename
sudo sh -c ': > filename'
也将被截断filename
sudo
:一起使用sudo cp /dev/null filename
。仅现代Linux时也cp
可移植truncate
。
logrotate
,它可能会为您提供一些价值(但烦人于设置它(只是猜测)!)。