I want to do a simple redirection. When I do
sudo curl <insert link here> > a.txt
I want to take all of the data outputted by the curl into a.txt. However, I keep getting an error saying
a.txt: Permission denied
Would anyone have any idea how to get around this? I've tried looking online by doing
sudo bash -c curl <insert link here> > a.txt
and that displays the same error. Any help would be appreciated! Thanks!
The privilege elevation only applies to the curl
process (and, in the second example, the child shell) itself, not to your (parent) shell, and therefore not to the redirection.
One solution is to do the redirection within the child shell itself:
sudo bash -c "curl $LINK >a.txt"
Another, fairly idiomatic option is to use tee
:
curl $LINK | sudo tee a.txt >/dev/null
For curl
specifically, you can also make the process itself write to the file directly:
sudo curl -o a.txt $LINK