Respostas:
O operador> redireciona a saída geralmente para um arquivo, mas pode ser para um dispositivo. Você também pode usar >> para acrescentar.
Se você não especificar um número, o fluxo de saída padrão será assumido, mas você também poderá redirecionar erros
> fileredireciona stdout para arquivo
1> fileredireciona stdout para arquivo
2> fileredireciona stderr para arquivo
&> fileredireciona stdout e stderr para arquivo
/dev/nullé o dispositivo nulo, ele pega qualquer entrada que você deseja e joga fora. Pode ser usado para suprimir qualquer saída.
2>&1uma sintaxe mais antiga, portanto &>não teria funcionado anos atrás, mas ambos são equivalentes.
Em resumo, ele redireciona stderr(fd 2) para o buraco negro (descarta a saída do comando).
Alguns casos de uso mais comuns para redirecionamento:
command > /dev/null 2>&1 &
Execute commandem segundo plano, descarte stdoutestderr
command >> /path/to/log 2>&1 &
Execute commande acrescente stdout e stderr a um arquivo de log.
No Bash 4+, uma forma mais curta (mas menos legível) é funcional
command &>> /path/to/log
> /dev/null 2>&1vez de &> /dev/null?
&>é novo no Bash 4, o primeiro é apenas a maneira tradicional, estou tão acostumado a isso (fácil de lembrar).
&> /dev/nullpode não funcionar em alguns shells, mas> / dev / null 2> & 1 funcionará em todos os shells compatíveis com POSIX.
fn>targetonde fnum número de arquivo (0-2 geralmente, alguns programas definem mais números) e targetgeralmente é um nome de arquivo, mas aqui está outro número de arquivo - prefixado com o &qual é o sintaxe para "Quero um número de arquivo em vez de um nome de arquivo".
/dev/nullé tratado como um buraco negro no Linux / Unix, para que você possa colocar algo nisso, mas não poderá recuperá-lo /dev/null.
Além disso, 2>significa que você está redirecionando (ou seja >) o stderr (ou seja 2) para o buraco negro (ou seja /dev/null)
Seu comando é:
grep -i 'abc' content 2>/dev/null
Não tente terminar com outra barra como esta - 2>/dev/null/(não é um diretório).
O conteúdo grep -i 'abc' gerará uma saída exibida no seu console, incluindo erros.
A especificação 2>/dev/nullfiltrará os erros para que eles não sejam gerados no console.
Mais detalhadamente: 2 representa o descritor de erros, onde os erros são gravados. Por padrão, eles são impressos no console.
\> redireciona a saída para o local especificado, neste caso /dev/null
/dev/null é o dispositivo Linux padrão para o qual você envia a saída que deseja ignorar.
> /dev/null 2>&1e&> /dev/null