Objetivo de / dev / zero?
On Fevereiro 17, 2021 by admin Eu tentei cat /dev/zero
e não pareceu fazer nada. Pesquisei /dev/zero
, e diz que é basicamente um arquivo em branco com tamanho infinito. cat
está imprimindo um número infinito de caracteres inexistentes? Como é que isso funciona? Como ele fornece dados infinitos se tiver 0 bytes? Quais são os usos desse arquivo, se alguém puder simplesmente criar um arquivo em branco?
Comentários
Resposta
/dev/zero
é um arquivo especial (neste caso, um pseudo-dispositivo) que fornece um fluxo infinito de caracteres nulos (então hex 0x00)? É por isso que seu cat
não está gerando nada (mas tente executá-lo em od
(despejo octal)).
“arquivo em branco com tamanho infinito” não é 100% correto: não é um arquivo normal, mas um arquivo especial (mais como um “fluxo” ou um gerador). Você pode ler o quanto quiser, por exemplo, com dd
(como dd if=/dev/zero of=yourfile count=1024 bs=1024
).
Isso “não é realmente um arquivo em branco , nem usado para criar arquivos em branco: ele” é usado para criar arquivos ou páginas de memória preenchidas apenas com zeros. Você também pode escrever nele, tornando-o um esgoto (seu irmão mais popular /dev/null
é mais comumente usado para isso).
Comentários
- Por que alguém iria querer preencher um espaço em branco, então?
- Por exemplo, para apagar o que estava lá antes. Ou durante uma transmissão.
- Eu ' não li o
srm
manual ou fonte, mas a maioria ' apagadores seguros ' preferem gravar dados (pseudo-) aleatórios em vez de zerar uma unidade, já que uma passagem de zeragem não é segura o suficiente (certas agências de três letras ainda podem deduzir o conteúdo original de um disco rígido zerado, uma vez que os bits individuais não são 100% verdadeiramente 1 ou 0, mas apenas " principalmente 1 " ou " principalmente 0 ". Compare com uma alavanca que você pode colocar " totalmente à esquerda " ou " totalmente à direita ", mas geralmente apenas um balanço para o outro lado é o suficiente. - @tkbx tentando
dd
uma partição que você pode desejar preencher todo o espaço vazio para 0 em vez de aleatório para obter um arquivo compactado menor lat er. - @Konerak Eu ' estou bastante desconfiado disso. Eu ' ouvi isso em todo o lugar e ' nunca vi evidências de que isso seja possível em qualquer disco rígido novo remotamente ( feito nos últimos 10 anos, pelo menos).
cat -v /dev/zero
para ver o que está fazendo. Consulte Limpar o espaço não utilizado com zeros (ext3, ext4) para um propósito comum.cat foo > /dev/null
ecat foo > /dev/zero
são iguais, mascat /dev/null
ecat /dev/zero
não ' o mesmo, correto?/dev/null
retorna imediatamente EOF se um programa quiser ler dele./dev/zero
retorna infinitamente 0 bytes.