Я понимаю, что стандарт для перенаправления - /dev/null , но почему бы не использовать /dev/zero? Разве это не имеет такой же эффект?

Другой вопрос, что все 1>> 2>> &>> >>& и что не означают для перенаправления

1 ответ1

3

Использование /dev/zero имеет тот же эффект, что и /dev/null при перенаправлении вывода на него. Нет причин не использовать его. Последнее просто чаще встречается в примерах и, следовательно, стало более популярным.

Что касается перенаправления, вы должны проверить руководство вашей оболочки. В вики Bash Hackers есть учебник по перенаправлению и другая справочная страница.

В принципе,

  • > перенаправляет вывод в файл

  • >> при перенаправлении добавляет к файлу (или создает его, когда он не существует), тогда как > обрезает и, следовательно, удаляет содержимое файла

  • n> , где n - номер дескриптора файла, перенаправляет вывод этого дескриптора в файл. Обычно используются 1 и 2 , соответственно stdout и stderr .

  • m>&n перенаправляет вывод файлового дескриптора m на n , так что вы можете объединить, например, stdout и stderr: > /dev/null 2>&1

  • &> также объединяет stdout и stderr

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .