Если я делаю: 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.