将输出重定向到文件权限被拒绝?
Posted
技术标签:
【中文标题】将输出重定向到文件权限被拒绝?【英文标题】:Redirect output to a file permission denied? 【发布时间】:2013-05-10 13:07:17 【问题描述】:我想做一个简单的重定向。当我这样做时
sudo curl <insert link here> > a.txt
我想把curl输出的所有数据都放到a.txt中。但是,我不断收到错误提示
a.txt: Permission denied
有人知道如何解决这个问题吗?我已经尝试通过做在线查找
sudo bash -c curl <insert link here> > a.txt
并显示相同的错误。任何帮助,将不胜感激!谢谢!
【问题讨论】:
How do I use sudo to redirect output to a location I don't have permission to write to?的可能重复 【参考方案1】:权限提升仅适用于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) could not connect to host。你知道为什么吗? Curl 无法连接到服务器。也许它已关闭,或者有防火墙,或者您的网络设置有问题,或者您输入错误的 URL。这与您询问的问题无关。【参考方案2】:我遇到了同样的问题,这是因为 a.txt 的文件夹对你来说是不可写的。 chmod/chown
或将其放入可写文件夹都可以解决问题。
希望这会有所帮助!
【讨论】:
以上是关于将输出重定向到文件权限被拒绝?的主要内容,如果未能解决你的问题,请参考以下文章