it-swarm-eu.dev

Jak přeskočit chyby „povolení odepřeno“ při spuštění v Linuxu?

Možný duplikát:
Jak odstraním výtisky výpisu „povolení odepřeno“ z programu najít?

Když spustím tento příkaz v systému Linux (SuSE):

find / -name ant

Dostávám mnoho chybových zpráv formuláře:

find: `/etc/cups/ssl': Permission denied

Vezme find argument, který přeskočí, ukazuje tyto chyby a zkouší pouze soubory, ke kterým mám oprávnění k přístupu?

146
user710818

můžete filtrovat zprávy do stderr. Raději je přesměrovat na stdout jako je tato.

 find / -name art  2>&1 | grep -v "Permission denied"

Vysvětlení:

Stručně řečeno, veškerý běžný výstup jde na standardní výstup (stdout). Všechny chybové zprávy ke standardní chybě (stderr).

grep obvykle vyhledá/vytiskne určený řetězec, -v převrátí to, takže najde/vytiskne každý řetězec, který neobsahuje obsahuje "Povolení odepřeno". Všechny vaše výstupy z příkazu find, včetně chybových zpráv obvykle odeslaných do stderr (popisovač souboru 2), nyní přejděte na stdout (popisovač souboru 1) a poté se filtrujte pomocí grep příkaz.

Předpokládá se, že používáte bash/sh Shell.

Pod tcsh/csh byste použili

 find / -name art |& grep ....
191
Levon