linux - 如何清空 ("truncate")Linux上已经存在并以某种方式受到保护的文件?

我的服务器上有一个名为 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

https://stackoverflow.com/questions/2423281/

相关文章:

python - 如何搜索和替换文件中的文本?

linux - 每个虚拟主机的error_log?

linux - 查找 -exec cmd {} + vs | xargs

linux - 如何让 CRON 调用正确的路径

c - Linux 中多线程的信号处理

python - Django 1.7 抛出 django.core.exceptions.AppR

python - "this"模块的源代码是做什么的?

android - 找不到构建工具修订版 23.0.1

python - 如何将 python 日期时间转换为具有可读格式日期的字符串?

python - 如何访问 Django 模板中的字典元素?