/ dev / null için çıktılar bash betiklerinde ne yapar? [çift]

95

Çoğu zaman ifadelerde şu tür bir sözdizimini kullanan küçük bash komut dosyalarına girerim:

some command > /dev/null 2>&1

Çıktının /dev/null çıkışının amacı nedir ve 2>&1 ne anlama geliyor?

Her zaman çalışır gibi görünüyor ama ne yaptığını bilmek istiyorum.

    
sordu javanix 08.11.2010 15:20

2 cevap

127

>/dev/null komut standart çıkışını, kendisine yazılan bilgileri ayan özel bir aygıt olan boş aygıtına yönlendirir

2 >&1 , standart hata akışını standart çıkış akışına yönlendirir (stderr = 2, stdout = 1).

Pratikte, komuttan gelen herhangi bir çıktının (stdout ve stderr) görüntülenmesini önler. Komut çıktısını umursamadığında kullanılır.

    
verilen cevap João Pinto 08.11.2010 15:31
53

STDIN, 0, STDOUT, 1 ve STDERR 2 tarafından temsil edilir.

/ dev / null , bit-bucket'tır: ihtiyacınız olmayan her şeyi döktüğünüz yer.

Böylece STDOUT, bit-kovanına (çöp kutusuna) yönlendirilir ve STDERR, STDOUT'un bulunduğu yere yönlendirilir: bit-kovası.

Bunu da yapabilirsiniz:

>/dev/null 2>/dev/null
    
verilen cevap Sid 08.11.2010 15:59

Etiketlerdeki diğer soruları oku