O que significa 2 > & 1 neste comando? [duplicar]

Esta pergunta já tem respostas aqui :

Comentários

Resposta

2 refere-se ao segundo descritor de arquivo do processo, ou seja, stderr.

> significa redirecionamento.

&1 significa que o destino do redirecionamento deve ser o mesmo local do primeiro arquivo descritor, ou seja, stdout.

Portanto, > /dev/null 2>&1 primeiro redireciona stdout para e redireciona stderr para lá também. Isso silencia efetivamente todas as saídas (regulares ou de erro) do comando wget.

:: edit :: Aqui é uma referência rápida excelente para você.

Comentários

  • Obrigado. Quando executado em um cron job de hospedagem compartilhada que normalmente envia um e-mail com a saída para um administrador, o > / dev / null 2 > & 1 evitar que isso aconteça, você acha? Os espaços em torno de ' > ' são importantes?
  • Sim , o truque de silenciamento completo é uma prática padrão para garantir que absolutamente nenhuma saída exista para acionar o e-mail de um cron job. (Observe, entretanto, que o provedor de hospedagem pode ter feito todo tipo de coisas estranhas ao seu ambiente cron para fazê-lo enviar algum tipo de e-mail independentemente de seus esforços.) :: editar :: E não, espaços ao redor do único > não importa, mas os espaços dentro de 2>&1 provavelmente são importantes (eu posso ' lembrar) .
  • Também pode ser importante notar que a mesma semântica geralmente é alcançada com o idioma &>/dev/null

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *