一尘不染

如何清空(“截断”)Linux上已经存在并受到某种方式保护的文件?

linux

我的服务器上有一个文件error.log,需要经常截断。我对该文件有读写权限。在vi中打开文件>删除所有内容>保存工作(显然)。但是当我尝试以下

cat /dev/null > error.log

我收到消息

File already exists.

显然,在服务器上已进行了某种配置,以防止意外覆盖文件。有人可以告诉我如何在一个命令中“截断”文件吗?


阅读 236

收藏
2020-06-03

共1个答案

一尘不染

您已设置noclobber选项。该错误看起来像是来自csh,因此您可以执行以下操作:

cat /dev/null >! file

如果我错了并且您正在使用bash,则应该执行以下操作:

cat /dev/null >| file

在bash中,您还可以将其缩短为:

>| file
2020-06-03