将输出重定向到文件时出现权限被拒绝的问题?

20

I want to do a simple redirection. When I do

sudo curl <insert link here> > a.txt

我想把curl输出的所有数据保存到a.txt文件中。然而,我一直收到一个错误信息:

a.txt: Permission denied

有人知道如何解决这个问题吗?我尝试在网上搜索,做了

的操作。
sudo bash -c curl <insert link here> > a.txt

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

2个回答

39

特权升级仅适用于 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

嗯,每次我尝试执行其中一个命令时,都会出现错误,提示curl:(7)无法连接到主机。你知道是为什么吗? - user1871869
2
Curl 无法连接到服务器。可能是服务器宕机了,或者有防火墙,或者您的网络设置出了问题,或者您输错了 URL。这与您所询问的问题无关。 - Cairnarvon

0

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

希望这可以帮到你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接