解决 Linux 执行 sudo echo xxx >> 命令提示权限不够的方法

想要将文本追加到文件 test.txt 里,于是使用 sudo echo xxx >> test.txt 命令,结果出现了权限不够。

$ sudo echo xxx >> test.txt
bash: test.txt 权限不够

问题原因:

出现此问题的原因是文件 test.txt 是 root 用户所有,普通用户无写权限,而 sudo 命令只让 echo 命令有 root 权限,而重定向命令 >> 不具有该权限,或者说 root 权限没有“传递”到重定向命令 >>,因此也就无法将输出文本重定向到 root 用户的文件 test.txt。

解决办法:

使用 bash -c 命令。该命令可以让 bash 运行整条字符串命令,前加 sudo 使得整条命令运行时具有 root 权限

sudo bash -c 'echo xxx >> test.txt'

标签

发表评论