Vraag Wat betekent 2> / dev / null?


Ik wil graag een korte uitleg van de volgende opdrachtregel:

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

149
2017-09-26 08:21


oorsprong




antwoorden:


De operator> leidt de uitvoer gewoonlijk om naar een bestand, maar kan dit voor een apparaat zijn. U kunt ook >> gebruiken om toe te voegen.

Als u geen getal opgeeft, wordt de standaard uitvoerstroom verondersteld, maar u kunt ook fouten omleiden

> file stuurt stdout om naar bestand
1> file stuurt stdout om naar bestand
2> file stuurt stderr door naar bestand
&> file stuurt stdout en stderr door naar bestand

/dev/null is het nul apparaat dat elke gewenste invoer nodig heeft en gooit het weg. Het kan worden gebruikt om elke uitvoer te onderdrukken.


217
2017-09-26 08:38



is er een verschil tussen > /dev/null 2>&1 en &> /dev/null - Alexander Mills
In de praktijk van vandaag denk ik niet dat dit zo is 2>&1 is een oudere syntax dus &> zou niet jaren geleden hebben gewerkt, maar beide zijn gelijkwaardig. - Warren Hill


Kort gezegd, stuurt het stderr (fd 2) door naar het zwarte gat (verwijdert de uitvoer van het commando).

Enkele meer algemene use-cases voor omleiding:

command > /dev/null 2>&1 &

Rennen command op de achtergrond, gooi stdout en stderr weg

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

Rennen command en voeg stdout en stderr toe aan een logbestand.


16
2017-09-26 08:32



Is er een goede reden om te gebruiken > /dev/null 2>&1 in plaats van &> /dev/null? - Craig McQueen
@CraigMcQueen &> is nieuw in Bash 4, de eerste is gewoon de traditionele manier, ik ben er gewoon zo aan gewend (gemakkelijk te onthouden). - Terry Wang


/dev/null wordt behandeld als een zwart gat in Linux / Unix, dus je kunt hier alles in stoppen, maar je zult er niet meer uitkomen /dev/null.

Verder, 2> betekent dat u bent omgeleid (d.w.z. >) de stderr (d.w.z. 2) in het zwarte gat (d.w.z. /dev/null)

Jouw opdracht is:

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

Probeer niet te eindigen met een andere voorwaartse schuine streep zoals deze - 2>/dev/null/ (het is geen directory).


5
2018-06-11 10:57