![Влияет ли запись в «/dev/null» или «NUL» на жесткий диск?](https://rvso.com/image/1490205/%D0%92%D0%BB%D0%B8%D1%8F%D0%B5%D1%82%20%D0%BB%D0%B8%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C%20%D0%B2%20%C2%AB%2Fdev%2Fnull%C2%BB%20%D0%B8%D0%BB%D0%B8%20%C2%ABNUL%C2%BB%20%D0%BD%D0%B0%20%D0%B6%D0%B5%D1%81%D1%82%D0%BA%D0%B8%D0%B9%20%D0%B4%D0%B8%D1%81%D0%BA%3F.png)
Я читал, /dev/null
что это специальный файл, который "выбрасывает" все, что в него записано, но использует ли запись напрямую в него жесткий диск каким-либо образом? Или как насчет оперативной памяти?
Например:
wget http://speedtest.wdc01.softlayer.com/downloads/test500.zip -o /dev/null
Аналогично для Windows, запись в тоже время NUL
ведет себя так же?
решение1
Запись на /dev/null
HDD никак не влияет. То же самое касается и Windows NUL
.
Одна вещь, котораяявляетсяразница в том, что NUL
это «специальное» имя, а /dev/null
не так.
Когда вы используете /dev/null
Linux (или любой Unix), ОС ищет файл с таким именем. Если он естьнетнайдите его, то он создаст реальный файл с именем /dev/null
и запишет данные на диск; это может произойти, если вы забыли смонтировать /dev
файловую систему или что-то в этом роде.
Если /dev/null
он существует, как и должно быть, то ОС определит, что это файл символьного устройства с магическими числами 1 и 3 (старший и младший), и специальный драйвер для записи на это устройство включится... и отбросит ваши данные, не считывая их.
На самом деле вы можете создать свой собственный null
файл в любом месте (и назвать его как угодно):
sudo mknod --mode=666 my_null c 1 3
и тогда это тоже сработает:
echo "dump this!" > ./my_null
Хотя я не знаю, зачем это нужно? ;-)
решение2
/dev/null
не похож на традиционные файлы.
Каталог /dev/
является точкой монтирования дляdevfs(Device Filesystem) псевдофайловая система. Использование формы файловой системыdevfsдействует как менеджер устройств, отображающий каждое устройство в виде файла.
Эта псевдо/виртуальная файловая система находится не на жестком диске. Она находится вПамять.
Файлы /dev
генерируются ядром для предоставления программному обеспечению и процессам доступа к устройствам.
Файл null
, находящийся в /dev/
каталоге, не имеет размера, дата его создания совпадает с временем загрузки системы и имеет права на чтение и запись для всех пользователей.