Che cosa significa 2 > & 1 in questo comando? [duplicate]

Questa domanda ha già una risposta qui :

Commenti

Risposta

2 si riferisce al secondo descrittore di file del processo, ovvero stderr.

> significa reindirizzamento.

&1 significa che la destinazione del reindirizzamento dovrebbe essere la stessa posizione del primo file descrittore, ovvero stdout.

Quindi > /dev/null 2>&1 primo reindirizza stdout a e quindi reindirizza stderr anche lì. In questo modo viene silenziato tutto loutput (normale o errore) dal comando wget.

:: edit :: Ecco un eccellente riferimento rapido per te.

Commenti

  • Grazie. Quando viene eseguito in un cron job di hosting condiviso che in genere invia une-mail delloutput a un amministratore, il > / dev / null 2 > & 1 previeni che ciò accada, pensi? Anche gli spazi attorno a ' > ' sono importanti?
  • Sì , il trucco di silenziamento completo è una pratica standard per assicurarsi che non esista assolutamente alcun output per attivare la posta elettronica da un cron job. (Nota, tuttavia, che il provider di hosting potrebbe aver fatto ogni sorta di cose strane al tuo ambiente cron per fargli inviare una sorta di email indipendentemente dai tuoi sforzi.) :: edit :: E no, spazi attorno al solitario > non importa, ma probabilmente gli spazi allinterno di 2>&1 sono importanti (posso ' richiamare) .
  • Potrebbe anche valere la pena notare che la stessa semantica si ottiene spesso con lidioma &>/dev/null

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *