首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何清空(“截断”) linux上已经存在并以某种方式受到保护的文件?

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

Stack Overflow用户
提问于 2010-03-11 15:35:46
回答 6查看 112.4K关注 0票数 114

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

代码语言:javascript
复制
cat /dev/null > error.log

我明白

代码语言:javascript
复制
File already exists.

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-11 15:45:24

您设置了noclobber选项。这个错误看起来像是来自csh,所以你可以这样做:

代码语言:javascript
复制
cat /dev/null >! file

如果我错了,而你在使用bash,你应该这样做:

代码语言:javascript
复制
cat /dev/null >| file

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

代码语言:javascript
复制
>| file
票数 160
EN

Stack Overflow用户

发布于 2013-03-12 06:50:40

这足以将文件大小设置为0:

代码语言:javascript
复制
> error.log
票数 48
EN

Stack Overflow用户

发布于 2015-04-09 17:07:06

这要归功于我的资深同事:

代码语言:javascript
复制
:> filename

例如,这不会破坏日志文件,因此您甚至可以在syslog上使用它。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2423281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档