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

Я хочу, чтобы одно или две строки описывали следующую строку:

grep -i 'abc' content 2>/dev/null 
1
задан 15 November 2017 в 17:27

3 ответа

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

Еще один распространенный случай использования

command > /dev/null 2>&1 & [!d2 ]

запустить команду в фоновом режиме, отменить stdout и stderr

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

запустить команду и перенаправить stdout и stderr в файл журнала

14
ответ дан 24 May 2018 в 17:34
  • 1
    Есть ли веская причина использовать > /dev/null 2>&1 вместо &> /dev/null? – Craig McQueen 30 November 2015 в 10:43
  • 2
    @CraigMcQueen &> является новым в Bash 4, первый - это просто традиционный способ, я просто привык к нему (легко запомнить). – Terry Wang 30 November 2015 в 16:24

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

Так далее 2> означает, что вы перенаправляете [т.е. >] stderr [т.е. 2] в черную дыру [т.е. /dev/null]

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

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

Помните, не пытайтесь положить конец другой косой чертой, подобной этой, - 2>/dev/null/

5
ответ дан 24 May 2018 в 17:34

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

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

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

-3
ответ дан 24 May 2018 в 17:34
  • 1
    Нет ничего плохого, если вы используете 2>/dev/null. Эти 2 являются эквивалентами: > file и >file. И почему grep -ri? – Radu Rădeanu 26 September 2013 в 14:02
  • 2
    Кстати, он также может искать строку /support/security/bulletins/ в файле с именем content =). – Alaa Ali 26 September 2013 в 14:06
  • 3
    @ RaduRădeanu неправильный синтаксис не на 2 & gt; но он, вероятно, изменил аргументы grep, так как иначе grep вряд ли приведет к большому количеству ошибок, за исключением того, что не сможет открыть файл с именем «content». – sivann 27 September 2013 в 17:24
  • 4
    @sivann Это плохое предположение. Итак, где неправильный синтаксис? OP ничего не говорит об этом ... Он просто хотел знать, что это значит 2>/dev/null – Radu Rădeanu 27 September 2013 в 20:02
  • 5
    Вероятно, ОП изменил вопрос. Этот ответ, похоже, относится к другому вопросу. – sivann 26 September 2016 в 18:27

Другие вопросы по тегам:

Похожие вопросы: