Если я делаю: touch file; mv file /dev/null
как root, /dev/null
исчезает. ls -lad /dev/null
в результате нет такого файла или каталога. Это ломает приложения, которые зависят от /dev/null
подобного SSH и могут быть решены путем mknod /dev/null c 1 3; chmod 666 /dev/null
. Почему перемещение обычного файла в этот специальный файл приводит к исчезновению /dev/null
?
Чтобы уточнить, это было в целях тестирования, и я понимаю, как mv
работает команда. Что меня интересует, так это то, почему ls -la /dev/null
перед заменой его обычным файлом отображается ожидаемый результат, но впоследствии он показывает, что /dev/null
его не существует, даже если файл был предположительно создан с помощью исходной mv
команды, а команда file показывает текст ASCII. Я думаю, что это должно быть сочетание ls
поведения команды в сочетании с тем, devfs
когда не специальный файл заменяет символ / специальный файл. Это на Mac OS X, поведение может отличаться на других ОС.
rm
команда.
devfs
смешно с обычными файлами. Странно, вы не получили ошибку, mv
хотя. Как об этом пути: touch testfile; mv testfile /dev
?
mv
может быть атомарным только в одной файловой системе.
/dev/null
.