use*_*869 9 unix curl permission-denied io-redirection
我想做一个简单的重定向.当我做
sudo curl <insert link here> > a.txt
Run Code Online (Sandbox Code Playgroud)
我想把curl输出的所有数据都放到a.txt中.但是,我一直在说错误
a.txt: Permission denied
Run Code Online (Sandbox Code Playgroud)
有人会知道怎么解决这个问题吗?我试过在网上看
sudo bash -c curl <insert link here> > a.txt
Run Code Online (Sandbox Code Playgroud)
并显示相同的错误.任何帮助,将不胜感激!谢谢!
Cai*_*von 25
权限提升仅适用于curl进程(以及第二个示例中的子shell)本身,而不适用于您的(父)shell,因此不适用于重定向.
一种解决方案是在子shell本身内进行重定向:
sudo bash -c "curl $LINK >a.txt"
Run Code Online (Sandbox Code Playgroud)
另一个相当惯用的选择是使用tee:
curl $LINK | sudo tee a.txt >/dev/null
Run Code Online (Sandbox Code Playgroud)
对于curl具体情况,你也可以让这个过程本身写入直接文件:
sudo curl -o a.txt $LINK
Run Code Online (Sandbox Code Playgroud)