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?
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 ....