Bagaimana cara membuat / dev / null?


65

Saya menghapus / dev / null saya. Bagaimana saya bisa mengembalikannya?


6
Saya pernah menemukan bahwa / dev / null diganti dengan file normal yang hanya bisa di-root oleh root. Saya berpikir sejenak bahwa saya harus menginstal ulang semuanya tetapi seperti yang disebutkan di bawah ini, pemulihannya adalah trival jika Anda tahu caranya.
Stuart Woodward

1
Saya berhasil menghapus / dev / null dengan membuat pipa saya salah membalik $ dan & sekitar saat menjalankan perintah rm dalam sebuah skrip. Aduh!
flickerfly

Jawaban:


81
mknod /dev/null c 1 3
chmod 666 /dev/null

Gunakan perintah ini untuk membuat /dev/nullatau menggunakan null(4)halaman manual untuk bantuan lebih lanjut.


5
Untuk kelengkapan, saya perhatikan bahwa ini berlaku untuk semua sistem berbasis linux; sistem lain mungkin memiliki nomor yang berbeda.
Random832

2
Ini juga hanya mengatur file perangkat itu sendiri, itu tidak akan mengembalikan izinnya. Anda harus melakukannya chmod go+wsecara manual.
Attila O.

7
Jumlah binatang itu!
wefwefa3

7
mknod -m 0666 /dev/null c 1 3- Hal yang sama tetapi lebih pendek
fnkr

1
mknod -m 0666 /dev/null c 1 3bekerja dengan sempurna untuk mengembalikan / dev / null pada CentOS 7, hanya untuk memberi tahu yang lain.
Bozzy

32

Di bawah banyak kesatuan tradisional, Anda dapat membuat ulang perangkat dengan izin default dengan MAKEDEVskrip . Skrip ini secara tradisional ada /devtetapi ada di /sbindalam Ubuntu. Berikan argumen yang menunjukkan perangkat apa yang ingin Anda buat; di Ubuntu itu std(Anda dapat menulis MAKEDEV nulljuga, yang menciptakan nullserta sejumlah perangkat lain).

Di bawah sistem Linux modern yang menjalankan udev , Anda dapat memberitahu udev untuk membuat ulang semua atau beberapa perangkat berdasarkan driver yang tersedia dan perangkat keras yang terhubung, melalui udevadm trigger:

udevadm trigger --sysname-match=null

Apakah jawaban ini masih terkini? Saya menggunakan CentOS 7 dan saya baru saja menimpa / dev / null secara tidak sengaja, udevadm trigger --sysname-match=nulltriknya tidak berfungsi untuk saya, sementara mknod -m 0666 /dev/null c 1 3bekerja dengan sempurna.
Bozzy

@ Bozzy Saya tahu itu bekerja dengan udev pra-systemd. Saya belum mencoba baru-baru ini, tetapi sejauh yang saya tahu ini harus tetap bekerja. Jika Anda menambahkan --verbose, apakah itu daftar /sys/devices/virtual/mem/null ?
Gilles 'SO- stop being evil'

Ya, itu daftar itu. Saya sudah mencoba menimpa lagi / dev / null pada mesin dev saya, tapi anehnya saya tidak dapat melakukannya di sini, jadi saya tidak dapat melakukan analisis yang lebih mendalam sekarang ...
Bozzy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.