GNU/Linux >> Znalost Linux >  >> Linux

Získejte „povolení odepřeno“ při přesměrování výstupu Sudo Echo „xyz“ do souboru?

Tato otázka zde již obsahuje odpovědi :Přesměrování stdout do souboru, do kterého nemáte oprávnění k zápisu

(7 odpovědí)
Uzavřeno před 6 lety.

Proč mám

-bash: test: Permission denied

když běžím

sudo echo "xyz" > test

Oprávnění k adresáři jsou:

drwxr-xr-x 3 root root 4096 2014-08-05 16:26 

Nemám problém vytvořit soubor v adresáři pomocí sudo . Ale proč do toho nemůžu sudo echo?

Přijatá odpověď:

K tomu dochází, protože spouštíte pouze echo příkaz jako root. O přesměrování výstupu se stará váš (non-root) shell. Abyste tomu zabránili, nepoužívejte přesměrování shellu a pro zpracování zápisu použijte skutečný příkaz:tee . Co chcete udělat, můžete udělat takto:

echo "xyz" | sudo tee test > /dev/null

(pokud výstup nepřesměrujete, tee vypíše xyz také na stdout)


Linux
  1. Echo To File Descriptor přepíše soubor?

  2. Jak získat vstup a výstup z terminálu do textového souboru?

  3. 3 triky, jak získat výstup více příkazů ve stejném řádku

  1. Jak připojit výstup do souboru?

  2. Získejte poslední 4 znaky výstupu ze standardního výstupu

  3. Jak přesměrovat výstup system() do souboru?

  1. Přesměrování výstupu z funkčního bloku do souboru v Linuxu

  2. Jak mohu získat obsah v barvách při čtení souboru s „méně“ nebo „více“?

  3. Jak přesměrovat výstup příkazu do souboru, když příkaz vyzve uživatele k zadání?