it-swarm-eu.dev

Co znamená 2> / dev / null?

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

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

Operátor> přesměruje výstup obvykle do souboru, ale může být na zařízení. K připojení můžete také použít >>.

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

> file přesměruje stdout do souboru
1> file přesměruje stdout do souboru
2> file přesměruje stderr do souboru
&> file přesměruje stdout a stderr do souboru

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

398
Warren Hill

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

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

command > /dev/null 2>&1 &

Spusťte command na pozadí, zahoďte stdout a stderr

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

Spusťte command a připojte stdout a stderr k souboru protokolu.

V Bash 4+ je funkční kratší (ale méně čitelná) forma

command &>> /path/to/log
32
Terry Wang

/dev/null se v systému Linux/Unix považuje za černou díru, takže do něj můžete vložit cokoli, ale nebudete ji moci získat zpět od /dev/null.

Dále, 2> 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 

Nesnažte se skončit dalším lomítkem jako je tato - 2>/dev/null/ (nejedná se o adresář).

10
YouAreAwesome

grep -i 'abc' content vygeneruje výstup, který se zobrazí na vaší konzoli, včetně jakýchkoli chyb.

Zadání 2>/dev/null odfiltruje chyby, aby se nedostaly na vaši konzoli.

Podrobněji: 2 představuje deskriptor chyby, do kterého se zapisují chyby. Ve výchozím nastavení jsou vytištěny na konzole.

\> přesměruje výstup na určené místo, v tomto případě /dev/null

/dev/null je standardní Linuxové zařízení, do kterého odesíláte výstup, který chcete ignorovat.

3
Mauro Zallocco