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!
To fix the permission denied error in Linux, one needs to change the file permission of the script. Use the “chmod” (change mode) command for this purpose.
To redirect the output of a command to a file, type the command, specify the > or the >> operator, and then provide the path to a file you want to the output redirected to. For example, the ls command lists the files and folders in the current directory.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With