-
Embora você possa redirecionar facilmente em um shell, há outros contextos em que não é tão fácil, como ao executar o comando em outro idioma sem usar uma linha de comando do shell. Mesmo em um shell:
find . -type f -exec grep -q foo {} \; -printf '%s\n'
para imprimir o tamanho de todos os arquivos que contêm
foo
. Se você redirecionar para/dev/null
, perderá ambosfind
egrep
output. Você precisaria recorrer a-exec sh -c 'exec grep foo "$1" > /dev/null' sh {} \;
(isto é, gerar uma casca extra). -
grep -q foo
é menor para digitar quegrep foo > /dev/null
- Redirecionar para
/dev/null
significa que a saída ainda está gravada e, em seguida, descartada, que é menos eficiente do que não gravá-la (e não alocar, preparar essa saída para ser gravada) - que permite mais otimizações. No caso de
grep
, por exemplo, já que com-q
,grep
sabe que a saída não é necessária, ela sai assim que encontrar a primeira correspondência. Comgrep > /dev/null
, ainda tentaria encontrar todas as correspondências. -
quiet não significa necessariamente silencioso . Para alguns comandos, isso significa reduzir a verbosidade (o oposto de
-v|--verbose
). Por exemplo,mplayer
tem--quiet
e--really-quiet
. Com alguns comandos, você pode usar-qqq
para diminuir a verbosidade 3 vezes.