19

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

sudo curl <insert link here> > a.txt

我想把curl输出的所有数据都放到a.txt中。但是,我不断收到错误消息

a.txt: Permission denied

有人知道如何解决这个问题吗?我试过在网上看

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

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

4

2 回答 2

37

特权提升仅适用于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
于 2013-05-15T20:43:36.673 回答
0

我遇到了同样的问题,这是因为 a.txt 的文件夹对你来说是不可写的。要么chmod/chown将其放入可写文件夹,要么将其放入可写文件夹中即可解决问题。

希望这可以帮助!

于 2016-04-07T23:03:37.550 回答