2 / dev / null ne demektir?

146

Aşağıdaki komut satırının kısa bir açıklamasını istiyorum:

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

3 cevap

213

& gt; operatör çıkışı genellikle bir dosyaya yönlendirir, ancak bir aygıta olabilir. Ayrıca & gt; & gt; eklemek için.

Bir sayı belirtmezseniz standart çıktı akışı kabul edilir, ancak hataları yeniden yönlendirebilirsiniz

> file stdout dosyasını dosyaya yönlendiriyor
1> file stdout dosyasını dosyaya yönlendiriyor
2> file stderr dosyasını dosyaya yönlendiriyor% &> file stdout ve stderr dosyasını dosyaya yönlendiriyor

/dev/null , null cihazdır ve istediğiniz girişi alır ve atar. Herhangi bir çıktıyı bastırmak için kullanılabilir.

    
verilen cevap Warren Hill 26.09.2013 10:38
16

Kısacası, stderr'i (fd 2) kara deliğe yönlendirir (komutun çıktısını atar).

Yeniden yönlendirme için daha yaygın kullanım örnekleri:

command > /dev/null 2>&1 &

Arka planda command dosyasını çalıştırın, stdout ve stderr komutlarını atın

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

command dosyasını çalıştırın ve stdout ve stderr dosyasını bir günlük dosyasına ekleyin.

    
verilen cevap Terry Wang 26.09.2013 10:32
5

/dev/null , Linux / Unix'te kara delik olarak kabul edildi, böylece buna herhangi bir şey koyabilirsiniz ancak /dev/null 'den geri alamayacaksınız.

Ayrıca, 2> , (ör. > ) stderr'i (yani 2 ) kara deliğe (yani /dev/null ) yönlendirdiğiniz anlamına gelir

Komutunuz:

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

Bunun gibi başka bir eğik çizgi ile bitmeyi denemeyin - 2>/dev/null/ (dizin değil).

    
verilen cevap Indrajeet Gour 11.06.2015 12:57

Etiketlerdeki diğer soruları oku