No bash, 2> /dev/null
iria realmente funcionar, contanto que você o adicione como parte do comando find, ou seja, antes do pipe.
Por exemplo, isso funcionará:
find -type f -printf "%s %p\n" 2> /dev/null | sort -nr | head -n 20
Com o tcsh, não há uma maneira simples de fazer o mesmo, mas o man tcsh menciona uma solução alternativa:
The shell cannot presently redirect diagnostic output without also redirecting standard output, but '(command > output-file) >& error-file' is often an acceptable workaround. Either output-file or error-file may be '/dev/tty' to send output to the terminal.
Para um comando find simples, isso fornece:
(find > /dev/tty) >& /dev/null
Ao usar pipes, em contraste com o bash, você precisa colocar > /dev/tty
após o último canal para evitar a mensagem de erro Redirecionar saída ambígua. .
Isso funcionará no tcsh:
(find -type f -printf "%s %p\n" | sort -nr | head -n 20 > /dev/tty) >& /dev/null