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

标签 linux file command-line

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

相关文章:

linux - 命令已退出,状态为 1 : pager -s

command-line - 如何从 R 脚本中读取命令行参数?

c# - Telnet 响应在 ~50 个字符后中间包含\r\n

python - 如何从网页更改正在运行的 Python 脚本/服务中的变量?

c - 提取文件的扩展名

java - 使用java创建文件后,其中没有值

android - 使用 RandomAccessFile 重写内容

sql - 如何从命令行通过 mysql 运行单个查询?

python - 定位 libmysqlclient_r.so.16 issue

c - 将指令指针地址(在共享库中)翻译成源指令