Что означает этот символ в моей команде Unix?

#shell #unix

#оболочка #unix

Вопрос:

Я выполняю какой-то учебник и вижу эту команду оболочки:

 find / -name foo 2>/dev/null
  

Что делает последний токен? В частности, 2 ? Я понимаю, что > перенаправление отправит вывод оболочки в файл, но как find получить только сообщение об ошибке?

Ответ №1:

2>/dev/null означает перенаправление stderr в /dev/ null. 2 Происходит из файлового дескриптора для stderr; stdin всегда 0 , stdout всегда 1 , и stderr всегда 2 . Источником перенаправления вывода по умолчанию является stdout, поэтому >/dev/null имеет то же значение, что и 1>/dev/null .

Кстати, это функция оболочки; она не специфична для find .