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?

Pandya
sumber
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:

Pandya
sumber
Lihat juga thecodelesscode.com/case/6
kojiro
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