125

Possible Duplicate:
sudo & redirect output

I'm trying to create a file in /var/www, but even with sudo this fails:

user@debVirtual:/var/www$ sudo echo "hello" > f.txt
-bash: f.txt: Permission denied

When I use sudo nano, I can save something to this file.

Why can't I use sudo echo?

1

1 Answer 1

247

The redirection is done by the shell before sudo is even started. So either make sure the redirection happens in a shell with the right permissions

sudo bash -c 'echo "hello" > f.txt'

or use tee

echo "hello" | sudo tee f.txt  # add -a for append (>>)
4
  • what if you already used quote and double quote?
    – tatsu
    Mar 3, 2019 at 18:14
  • 4
    Thanks. Top one didn't work for me on Debian but 2nd option worked perfectly.
    – Chris B
    Jul 11, 2019 at 9:32
  • Kind of lengthy + ugly really isn't it.
    – Manachi
    Mar 5, 2021 at 3:15
  • If you need multiple lines as stdin input, use cat <<EOF | sudo tee -a /your/file, and let your input's last line be EOF.
    – WesternGun
    Jul 30, 2021 at 10:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.