Что означает 2 / dev / null?

154

Я хотел бы кратко пояснить следующую командную строку:

grep -i 'abc' content 2>/dev/null 
    
задан Naive 26.09.2013 в 10:21
источник

3 ответа

226

> оператор перенаправляет вывод обычно в файл, но может быть на устройство. Вы также можете использовать > > > добавить.

Если вы не укажете число, то предполагается стандартный поток вывода, но вы также можете перенаправить ошибки

> file перенаправляет stdout в файл
1> file перенаправляет stdout в файл
2> file перенаправляет stderr в файл
&> file перенаправляет stdout и stderr в файл

/dev/null - это нулевое устройство, которое требует любого ввода, который вы хотите, и выбрасывает его. Он может использоваться для подавления любого выхода.     

ответ дан Warren Hill 26.09.2013 в 10:38
источник
16

Короче говоря, он перенаправляет stderr (fd 2) в черное отверстие (отбрасывает вывод команды).

Некоторые более распространенные варианты использования для перенаправления:

command > /dev/null 2>&1 &

Запустите command в фоновом режиме, отбросьте stdout и stderr

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

Запустите command и добавьте stdout и stderr в файл журнала.

    
ответ дан Terry Wang 26.09.2013 в 10:32
5

/dev/null рассматривается как черная дыра в Linux / Unix, поэтому вы можете поместить что-нибудь в это, но вы не сможете вернуть его из /dev/null .

Кроме того, 2> означает, что вы перенаправляете (т. е. > ) stderr (т. е. 2 ) в черную дыру (т. е. /dev/null )

Ваша команда:

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

Не пытайтесь закончить с помощью следующей косой черты: 2>/dev/null/ (это не каталог).

    
ответ дан Indrajeet Gour 11.06.2015 в 12:57
-3

Эта команда grep имеет неправильный синтаксис, она должна быть чем-то вроде

grep -ri content /support/security/bulletins/ 2> /dev/null

и 2 & gt; / dev / null означает перенаправление всех ошибок, создаваемых этой командой, на / dev / null, что отбрасывает их и не отображает их на экране (или где в настоящий момент указывается стандартный дескриптор файла ошибок). / dev / null - это файл, который, когда вы записываете данные в него, никуда не идет.

    
ответ дан sivann 26.09.2013 в 10:31