Sum*_*eek 111 linux command-line file
我的服务器上有一个名为error.log的文件,我需要经常截断.我对该文件拥有rw权限.在vi中打开文件>删除所有内容>保存工作(显然).但是当我尝试下面的时候
cat /dev/null > error.log
我收到了消息
File already exists.
显然,在服务器上进行了某种配置以防止意外覆盖文件.任何人都可以告诉我如何在一个命令中"截断"文件?
R S*_*hko 157
你有noclobber选择权.该错误看起来像是来自csh,所以你会这样做:
cat /dev/null >! file
如果我错了你正在使用bash,你应该这样做:
cat /dev/null >| file
在bash中,您还可以将其缩短为:
>| file
ris*_*dar 71
您还可以使用函数截断
$truncate -s0 yourfile
如果权限被拒绝,请使用sudo
$sudo truncate -s0 yourfile
帮助/手动:man truncate
在ubuntu Linux上测试过
SIF*_*IFE 49
这足以将文件大小设置为0:
> error.log
我的高级同事为此付出了代价:
:> filename
这不会破坏日志文件,因此您甚至可以在syslog上使用它.