清空catalina.out报错Permission denied

今天在清空catalina.out的时候报错

[yangkun@sg logs]$ sudo echo '' > catalina.out 
-bash: catalina.out: Permission denied

使用sudo echo ‘xxx’ > /path/file 时,其实sudo只用在了 echo 上,而重定向没有用到sudo的权限,所以会出现“Permission denied”的情况,解决的方法也很简单,就是一个参数而已。加一个“ sh -c ”就可以把权限指定到整条shell了。

sudo sh -c "echo '' > catalina.out "

另一种方法是利用管道和 tee 命令,该命令可以从标准输入中读入信息并将其写入标准输出或文件中,具体用法如下:

echo “xxxx” | sudo tee -a test.txt

tee 命令 “-a” 选项的作用等同于 “>>” 命令,如果去除该选项,那么 tee 命令的作用就等同于 “>” 命令。

原文地址:https://www.cnblogs.com/0xcafedaddy/p/6797454.html