/dev/null - это просто файл, это файл с особым символом, но он не менее связан правилами, которые должны следовать файлам. При этом вы никогда не сможете запустить эту команду:
$ mv ~ /dev/null
Команда mv не позволит этого, так как вы перемещаете каталог в файл, что просто не имеет смысла контекстуально и mv знает это.
$ mkdir dir
$ touch afile
$ mv dir afile
mv: cannot overwrite non-directory ‘afile’ with directory ‘dir’
Вы также не можете скопировать на /dev/null, если это файл символа, если вы попытаетесь скопировать обычный файл на
$ cp ~/bzip2_1.0.6-4_amd64.deb /dev/null
$ ls -l |grep null
crw-rw-rw- 1 root root 1, 3 Mar 16 14:25 null
О том, что вы можете сделать только этот файл, это копировать mv поверх другого файла или удалять его.
$ mv /path/to/afile /dev/null
После этой команды [ f11] является обычным файлом. Самый опасный эффект этого изменения заключается в том, что /dev/null не должен выводить никаких данных, поэтому ряд сценариев оболочки предположит, что
`... < /dev/null`
эквивалентен «ничего». Прерывание этого предположения может привести к случайным данным (ну, данные, которые последний процесс написал в `/ dev / null '), вставлены в системные файлы по всей системе, что может привести к совершенно сломанной и невосстановимой системе. 7]