我的服务器上有一个名为 error.log 的文件,我需要经常截断它。我对该文件有 rw 权限。在 vi 中打开文件 > 删除所有内容 > 保存作品(显然)。但是当我尝试下面的
cat /dev/null > error.log
我收到消息
File already exists.
显然,在服务器上进行了某种配置,以防止意外覆盖文件。谁能告诉我如何在单个命令中“截断”文件?
最佳答案
您设置了 noclobber
选项。错误看起来像是来自 csh,所以你会这样做:
cat /dev/null >! file
如果我错了,你正在使用 bash,你应该这样做:
cat /dev/null >| file
在 bash 中,您还可以将其缩短为:
>| file
关于linux - 如何清空 ("truncate")Linux上已经存在并以某种方式受到保护的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2423281/