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

17 浏览
0 Comments

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

这个问题已经在其他地方有了答案:

如何使用sudo将输出重定向到我没有写入权限的位置?[已关闭]

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

sudo curl  > a.txt

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

a.txt: Permission denied

有没有人有任何想法如何解决这个问题?我试过在网上搜索

sudo bash -c curl  > a.txt

但显示的是相同的错误。任何帮助都将不胜感激!谢谢!

admin 更改状态以发布 2023年5月21日
0
0 Comments

我也遇到了同样的问题,这是因为 a.txt 文件夹对您来说不可写。使用 chmod/chown 调整设置或将其放入可写文件夹中即可解决问题。

希望可以帮到您!

0
0 Comments

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

0