Jeśli zrobię: touch file; mv file /dev/nulljako root /dev/nullznika. ls -lad /dev/nullpowoduje brak takiego pliku lub katalogu. To łamie aplikacje, które zależą od /dev/nullSSH i można je rozwiązać przez wykonanie mknod /dev/null c 1 3; chmod 666 /dev/null. Dlaczego przeniesienie zwykłego pliku do tego pliku specjalnego powoduje jego zniknięcie /dev/null?
Aby to wyjaśnić, było to w celach testowych i rozumiem, jak mvdziała polecenie. Ciekawe, dlaczego ls -la /dev/nullprzed zastąpieniem go zwykłym plikiem wyświetla oczekiwane dane wyjściowe, ale potem pokazuje, że /dev/nullnie istnieje, mimo że plik został rzekomo utworzony za pomocą oryginalnego mvpolecenia, a polecenie pliku pokazuje tekst ASCII. Myślę, że musi to być kombinacja lszachowania polecenia w połączeniu z sytuacją, devfsgdy plik niespecjalny zastępuje plik znakowy / specjalny. Dotyczy to Mac OS X, zachowania mogą się różnić w innych systemach operacyjnych.
rmpolecenie.
devfsjest zabawny z normalnymi plikami. Dziwne, że nie dostałeś jednak błędu mv. Co powiesz na ten sposób touch testfile; mv testfile /dev:?
mvmoże być atomowy tylko w tym samym systemie plików.
/dev/null.