Ao tentar redirecionar para /dev/nulle /dev/zero, a saída é descartada. Parece os dois /dev/nulle /dev/zeroaceita e descarta toda a entrada. Então, qual é a diferença entre /dev/nulle /dev/zero?
Sim, ambos aceitam e descartam todas as entradas, mas sua saída não é a mesma:
/dev/nullnão produz saída .
/dev/zeroproduz um fluxo contínuo de bytes NULL (valor zero) .
Você pode ver a diferença executando cat /dev/nulle cat /dev/zero.
Tente cat /dev/null > filee você encontrará um vazio file.
Agora tente cat /dev/zero > file, enquanto observa o tamanho do arquivo ( watch -n 1 du -h file) aumentar continuamente. Isso ocorre porque a leitura de /dev/zerofornece um fluxo interminável de \0caracteres (nulos).
Use ddpara visualizar a diferença de maneira mais apropriada:
$ 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 é usado para criar arquivos fictícios ou trocar.
Vale notar: mmapping /dev/zerocom MAP_PRIVATEé a maneira "portátil" de obter um mapeamento de memória anônimo (na ausência de extensões como MAP_ANON).
nneonneo
6
Talvez não seja óbvio para o leitor casual, é exatamente como/dev/null não produz saída: ele sinaliza EOF imediatamente.
rm -f /dev/zero ; echo -n 111111111111 > /dev/zero
* foge *Respostas:
Sim, ambos aceitam e descartam todas as entradas, mas sua saída não é a mesma:
/dev/null
não produz saída ./dev/zero
produz um fluxo contínuo de bytes NULL (valor zero) .Você pode ver a diferença executando
cat /dev/null
ecat /dev/zero
.Tente
cat /dev/null > file
e você encontrará um vaziofile
.Agora tente
cat /dev/zero > file
, enquanto observa o tamanho do arquivo (watch -n 1 du -h file
) aumentar continuamente. Isso ocorre porque a leitura de/dev/zero
fornece um fluxo interminável de\0
caracteres (nulos).Use
dd
para visualizar a diferença de maneira mais apropriada:/dev/zero
é usado para criar arquivos fictícios ou trocar.Visite também:
fonte
mmap
ping/dev/zero
comMAP_PRIVATE
é a maneira "portátil" de obter um mapeamento de memória anônimo (na ausência de extensões comoMAP_ANON
)./dev/null
não produz saída: ele sinaliza EOF imediatamente.