Tujuan / dev / nol?

49

Saya mencoba cat /dev/zero, dan sepertinya tidak melakukan apa-apa. Saya googled /dev/zero, dan katanya itu pada dasarnya file kosong dengan ukuran tak terbatas. Apakah catmencetak karakter yang tidak ada dalam jumlah tak terbatas? Bagaimana cara kerjanya? Bagaimana cara menyediakan data tanpa batas jika 0 byte? Apa kegunaan dari file ini, jika seseorang dapat membuat file kosong?

tkbx
sumber
11
Jalankan cat -v /dev/zerountuk melihat apa yang dilakukannya. Lihat Batal ruang yang tidak terpakai dengan nol (ext3, ext4) untuk tujuan yang sama.
manatwork
Ada juga / dev / null yang berperilaku seperti file kosong jika Anda ingin membacanya dan sebagai lubang hitam jika Anda menulisnya.
jofel
@ jofel tetapi Anda tidak dapat menggunakan / dev / null untuk 0-bit tanpa batas, bukan? cat foo > /dev/nulldan cat foo > /dev/zeroadalah sama, namun cat /dev/nulldan cat /dev/zerotidak sama, yang benar?
tkbx
@ tkbx ya, benar. /dev/nullsegera mengembalikan EOF jika suatu program ingin membacanya. /dev/zeromengembalikan tanpa batas 0-byte.
jofel

Jawaban:

53

/dev/zeroadalah file khusus (dalam hal ini, perangkat pseudo) yang memberikan aliran karakter null tanpa akhir (jadi hex 0x00)? Itu sebabnya Anda cattidak menghasilkan apa-apa (tapi coba jalankan melalui od(octal dump)).

'file kosong dengan ukuran tak terbatas' tidak 100% benar: ini bukan file biasa, tetapi file khusus (lebih seperti 'stream' atau generator). Anda dapat membaca sebanyak mungkin dari yang Anda inginkan, misalnya dengan dd(suka dd if=/dev/zero of=yourfile count=1024 bs=1024).

Ini sebenarnya bukan file kosong , juga tidak digunakan untuk membuat file kosong: itu digunakan untuk membuat file atau halaman memori yang hanya diisi dengan angka nol. Anda juga dapat menulis kepadanya, membuatnya bekerja seperti sinkhole (saudara lelakinya yang lebih populer /dev/nulllebih sering digunakan untuk ini).

Konerak
sumber
Tetapi, mengapa seseorang ingin mengisi ruang kosong?
tkbx
5
Misalnya, untuk menghapus apa yang ada di sana sebelumnya. Atau saat mentransmisikan.
Konerak
4
Saya belum pernah membaca srmmanual atau sumbernya, tetapi kebanyakan 'penghapus aman' lebih suka menulis (pseudo-) data acak daripada mem-zero-ing drive, karena satu pass dari zero-ing tidak cukup aman (agen tiga huruf tertentu) masih dapat mengurangi konten asli dari harddisk yang memusatkan perhatian, karena masing-masing bit tidak 100% benar-benar 1 atau 0, tetapi hanya "kebanyakan 1" atau "kebanyakan 0". Bandingkan dengan tuas yang dapat Anda tempatkan "ke kiri" "atau" sepanjang jalan yang benar ", tetapi biasanya hanya ayunan ke sisi lain sudah cukup.
Konerak
11
@ tkbx mencoba ddpartisi Anda mungkin ingin mengisi semua ruang kosong ke 0 daripada acak untuk mendapatkan file terkompresi yang lebih kecil nanti.
neurino
1
@Konerak, saya cukup curiga. Saya pernah mendengarnya di semua tempat dan saya belum pernah melihat bukti bahwa hal itu mungkin terjadi pada harddrive baru yang jauh (dibuat setidaknya dalam 10 tahun terakhir).
Rob