可以sudo
在单个命令上使用超级用户权限运行它:
sudo echo "hi"
Run Code Online (Sandbox Code Playgroud)
但是当我使用带有命令的管道时:
sudo echo "hi" > /a.txt
Run Code Online (Sandbox Code Playgroud)
超级用户权限未扩展到管道 ( > /a.txt
) 部分,并且我收到拒绝权限的错误:
bash: /a.txt: 权限被拒绝
我的问题是:
是否有一种语法可以将sudo
上面的范围扩展到管道部分?
在 root 提升的 shell 中运行命令,然后你的 I/O 重定向也将以 root 身份完成:
sudo bash -c 'echo "hi" > /a.txt'
Run Code Online (Sandbox Code Playgroud)
如果您不想创建子shell 来执行此操作,可以使用以下解决方法tee
:
echo "hi" | sudo tee /a.txt > /dev/null
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
189 次 |
最近记录: |