Perbedaan antara / dev / null dan / dev / zero


27

Saat mencoba mengalihkan ke /dev/nulldan /dev/zero, output itu dibuang. Tampaknya keduanya /dev/nulldan /dev/zeromenerima dan membuang semua input. Jadi, apa perbedaan antara /dev/nulldan /dev/zero?


6
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero*
Lari

Jawaban:


52

Ya, keduanya menerima dan membuang semua input, tetapi hasilnya tidak sama:

  • /dev/nulltidak menghasilkan output .
  • /dev/zeromenghasilkan aliran terus menerus dari NULL (nilai nol) byte .

Anda dapat melihat perbedaannya dengan mengeksekusi cat /dev/nulldan cat /dev/zero.

  • Coba cat /dev/null > filedan Anda akan menemukan yang kosong file.

  • Sekarang coba cat /dev/zero > file, sambil menonton ukuran file ( watch -n 1 du -h file) terus meningkat. Ini karena membaca dari /dev/zeromemberikan aliran tanpa henti \0karakter (nol).

Gunakan dduntuk memvisualisasikan perbedaan lebih tepat:

$ dd if=/dev/null of=file count=10
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000276193 s, 0.0 kB/s

$ dd if=/dev/zero of=file count=10
10+0 records in
10+0 records out
5120 bytes (5.1 kB) copied, 0.00090775 s, 5.6 MB/s

/dev/zero digunakan untuk membuat file dummy atau swap.

Kunjungi juga:



2
Perlu dicatat: mmapping /dev/zerodengan MAP_PRIVATEadalah cara "portabel" untuk mendapatkan pemetaan memori anonim (tanpa adanya ekstensi seperti MAP_ANON).
nneonneo

6
Mungkin tidak jelas bagi pembaca biasa adalah bagaimana /dev/null tidak menghasilkan output: Ini menandakan EOF segera.
Peter - Reinstate Monica

Apakah ada perangkat yang memberikan semua itu?
Aaron Franke
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.