清除由root拥有的日志文件

我需要清除一个日志文件

cat /dev/null > error.log 

问题是这个文件是由root拥有的

 -rw-r--r-- 1 root root 15505 Feb 9 15:08 error.log 

这不起作用

 $ sudo cat /dev/null > error.log -bash: error.log: Permission denied 

不知道为什么…所以我怎么能解决这个问题?

尝试这个:

 $ sudo sh -c "cat /dev/null > error.log" 

问题是,用你使用的命令,你真的在​​运行两个命令:第一个猫以root用户(通过sudo)运行,但其他的一切都以你的用户身份运行。 以上方法解决了这个问题。

U&L上的这个答案有更多的信息。