Když se pokusíte upravit soubor bez oprávnění k zápisu, zobrazí se chyba:
> touch /tmp/foo && sudo chown root /tmp/foo
> echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Sudoing nepomůže, protože spustí příkaz jako root, ale shell se postará o přesměrování stdout a stejně otevře soubor jako vy:
> sudo echo test > /tmp/foo
zsh: permission denied: /tmp/foo
Existuje snadný způsob, jak přesměrovat stdout na soubor, do kterého nemáte oprávnění zapisovat, kromě otevření shellu jako root a manipulace se souborem tímto způsobem?
> sudo su
# echo test > /tmp/foo
Přijatá odpověď:
Ano, pomocí tee
. Takže echo test > /tmp/foo
se stává
echo test | sudo tee /tmp/foo
Můžete také připojit (>>
)
echo test | sudo tee -a /tmp/foo