我想做一个简单的重定向。当我做的时候
sudo curl <insert link here> > a.txt
我想把curl输出的所有数据都放到a.txt中。但是,我一直收到错误说
a.txt: Permission denied
有人会知道怎么解决这个问题吗?我尝试过在线查看
sudo bash -c curl <insert link here> > a.txt
并显示相同的错误。任何帮助,将不胜感激!谢谢!
答案 0 :(得分:23)
权限提升仅适用于curl
进程(以及第二个示例中的子shell)本身,而不适用于您的(父)shell,因此不适用于重定向。
一种解决方案是在子shell本身内进行重定向:
sudo bash -c "curl $LINK >a.txt"
另一个相当惯用的选择是使用tee
:
curl $LINK | sudo tee a.txt >/dev/null
具体来说,对于curl
,您还可以使进程本身直接写入文件:
sudo curl -o a.txt $LINK
答案 1 :(得分:0)
我遇到了同样的问题,因为a.txt的文件夹对你来说是不可写的。它chmod/chown
或将其放入可写文件夹将解决问题。
希望这有帮助!