Objetivo de / dev / zero?

49

Eu tentei cat /dev/zero, e não parecia fazer nada. Pesquisei no Google /dev/zeroe diz que é basicamente um arquivo em branco com tamanho infinito. A catimpressão é um número infinito de caracteres inexistentes? Como é que isso funciona? Como ele fornece dados infinitos se forem 0 bytes? Quais são os usos desse arquivo, se alguém pode simplesmente criar um arquivo em branco?

tkbx
fonte
11
Corra cat -v /dev/zeropara ver o que está fazendo. Consulte Limpar espaço não utilizado com zeros (ext3, ext4) para uma finalidade comum.
precisa saber é
Também existe / dev / null que se comporta como um arquivo vazio se você quiser lê-lo e como um buraco negro se você escrever nele.
Jofel
@ jofel, mas você não pode usar / dev / null para infinitos 0 bits, certo? cat foo > /dev/nulle cat foo > /dev/zerosão os mesmos, mas cat /dev/nulle cat /dev/zeronão são o mesmo, correto?
tkbx
@tkbx sim, correto. /dev/nullretorna imediatamente o EOF se um programa quiser ler dele. /dev/zeroretorna infinitamente 0 bytes.
Jofel

Respostas:

53

/dev/zeroé um arquivo especial (neste caso, um pseudo-dispositivo) que fornece um fluxo interminável de caracteres nulos (então hex 0x00)? É por isso que você catnão está produzindo nada (mas tente executá-lo od(dump octal)).

'arquivo em branco com tamanho infinito' não está 100% correto: não é um arquivo comum, mas um arquivo especial (mais como um 'fluxo' ou um gerador). Você pode ler o máximo que quiser, por exemplo com dd(like dd if=/dev/zero of=yourfile count=1024 bs=1024).

Na verdade, não é um arquivo em branco , nem usado para criar arquivos em branco: é usado para criar arquivos ou páginas de memória preenchidas apenas com zeros. Você também pode escrever para ele, fazendo com que ele funcione como um buraco (seu irmão mais popular /dev/nullé mais comumente usado para isso).

Konerak
fonte
Por que alguém iria querer preencher espaço em branco?
tkbx
5
Por exemplo, para apagar o que estava lá antes. Ou ao transmitir.
precisa saber é o seguinte
4
Não li o srmmanual ou a fonte, mas a maioria das 'borrachas seguras' prefere gravar (pseudo-) dados aleatórios em vez de zerar uma unidade, pois uma passagem de zeragem não é segura o suficiente (certas agências de três letras ainda é possível deduzir o conteúdo original de um disco rígido zerado, pois os bits individuais não são 100% verdadeiramente 1 ou 0, mas apenas "principalmente 1" ou "principalmente 0". Compare-o com uma alavanca que você pode colocar "até o fim" "ou" todo o caminho certo ", mas geralmente apenas um balanço para o outro lado é suficiente.
#
11
@tkbx tentando dduma partição, você pode preencher todo o espaço vazio em 0, em vez de aleatório, para obter um arquivo compactado menor posteriormente.
neurino
11
@ Konerak Desconfio bastante disso. Ouvi dizer isso em todo o lugar e nunca vi evidências de que isso seja possível em qualquer disco rígido remotamente novo (feito nos últimos 10 anos, pelo menos).
Rob