Co to znaczy '> /dev/null 2>&1'?

Data publikacji: 2012-10-15 | Tagi:

No właśnie - zapewne wielu z Was używa, ale nie wszyscy wiedzą o co chodzi.

Ten zapis można podzielić na dwie części:

> /dev/null

oraz

2>&1

Pierwszy zapis znaczy tyle co - przekieruj standardowe wyjście do nulla. Co to tak naprawdę znaczy? Ano to, że wszystko co pojawi się na standardowym wyjściu ma być przekierowane do systemowego bitbucketa (czyli utracone, bez wyświetlania, czy zapamiętywania).

Drugi zapis jest trochę bardziej skomplikowany. W skrócie znaczy: przekieruj standardowe wyjście błędów do standardowego wyjścia.

Nieco dokładniejsze wytłumaczenie jest takie: standardowe wejścia i wyjścia w systemach linuxowych są ponumerowane (STDIN - 0, STDOUT - 1, STDERR - 2), aby przekierować jedno z nich na drugie należy użyć odpowiedniej składni (2>&1 przekieruj STDERR do STDOUT, 1>&2 przekieruj STDOUT do STDERR itp.).

Całość można w jednym zdaniu wytłumaczyć jako: Przekieruj standardowe wyjście błędów na standardowe wyjście, a standardowe wyjście przekieruj do nulla.

Praktycznym efektem tego działania jest brak jakichkolwiek komunikatów, co przydaje się często np. w crontabie.


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: