Co znamená 2 / dev / null?

153

Chtěl bych stručné vysvětlení následujícího příkazového řádku:

grep -i 'abc' content 2>/dev/null 
    
dané Naive 26.09.2013 10:21

3 odpovědi

224

> operátor přesměruje výstup obvykle do souboru, ale může to být pro zařízení. Můžete také použít > > přidat.

Pokud nezadáte číslo, předpokládá se standardní výstupní tok, ale můžete také přesměrovat chyby

> file přesměruje stdout do souboru1> file redirects stdout do souboru2> file přesměruje stderr do souboru&> file přesměruje stdout a stderr do souboru

/dev/null je nulové zařízení, které potřebuje jakýkoli požadovaný vstup a vyhodí ho. Může být použit k potlačení jakéhokoli výstupu.

    
odpověděl Warren Hill 26.09.2013 10:38
16

Stručně řečeno, přesměruje stderr (fd 2) na černou díru (odstraní výstup příkazu).

Některé běžné případy použití pro přesměrování:

command > /dev/null 2>&1 &

Spusťtecommand na pozadí, zrušte stdout a stderr

command >> /path/to/log 2>&1 &

Spusťtecommand a připojte stdout a stderr do souboru protokolu.

    
odpověděl Terry Wang 26.09.2013 10:32
5

/dev/null je považován za černou díru v Linuxu / Unixu, takže můžete do něj něco vložit, ale nebudete ji moci získat od/dev/null.

Dále2> znamená, že přesměrováváte (tj.>) stderr (tj.2) do černé díry (tj/dev/null)

Váš příkaz je:

grep -i 'abc' content 2>/dev/null 

Nepokoušejte se ukončit jiným dopředným lomítkem -2>/dev/null/ (není to adresář).

    
odpověděl Indrajeet Gour 11.06.2015 12:57