将输出重定向到文件权限被拒绝?

时间:2013-05-15 19:56:52

标签: unix curl permission-denied io-redirection

我想做一个简单的重定向。当我做的时候

sudo curl <insert link here> > a.txt

我想把curl输出的所有数据都放到a.txt中。但是,我一直收到错误说

a.txt: Permission denied

有人会知道怎么解决这个问题吗?我尝试过在线查看

sudo bash -c curl <insert link here> > a.txt

并显示相同的错误。任何帮助,将不胜感激!谢谢!

2 个答案:

答案 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或将其放入可写文件夹将解决问题。

希望这有帮助!