Это не опасно.
- Команда
echo
используется для отправки вывода на стандартный stdout
. Обычно это ваш терминал, но его можно перенаправить на другие вещи.
- Оператор перенаправления
>
перенаправит вывод из stdout
в файл по вашему выбору.
- Файлы в
/dev
обычно представляют собой файлы особого типа, которые отправляют вывод в драйвер устройства вместо хранилища.
В современных системах Unix эти "специальные" файлы создаются и динамически поддерживаются процессом обнаружения оборудования - например, udev
или systemd
под Linux. Но возможно иметь полностью статичную систему, в которой они делаются вручную (через mknod
- это один из способов), если аппаратное обеспечение в системе не изменяется - до преобладания интерфейсов Plug-and-Play (например, различные Unices в 70-х, 80-х и начале 90-х) это было обычным делом.
/dev/null
- это стандартный драйвер устройства Unix, который просто отбрасывает то, что получает. Это часто используется, чтобы выбросить нежелательный вывод или для тестирования.
Если вы используете это в Windows Подсистема Linux для Windows, я не уверен, как он создает эти файлы, но LXSS, вероятно, представляет виртуальную версию их программам, которые работают в подсистеме для совместимости. (В Windows есть драйвер устройства "Null", если вы посмотрите devmgmt.msc
разделе «Устройства, отличные от Plug-and-Play» - LXSS, вероятно, работает за кулисами, чтобы /dev/null
действительно использовал этот драйвер Windows) Cygwin, другое программное обеспечение, которое представляет подсистему Linux, тоже делает это.
""
является пустой строкой, ничего не значащей, но echo
добавляет новую строку, если не указан ключ -n
, поэтому echo ""
выводит новую строку в stdout
(перенаправленный в /dev/null
в примере).