O strings
comando se comporta de maneira estranha, aparentemente não para de gravar em um arquivo, mesmo que a unidade fique sem espaço. Ou talvez eu esteja perdendo alguma coisa?
Eu executo o seguinte:
# strings /dev/urandom > random.txt
isso continuava em execução e não parava mesmo depois de encher o disco (um flash USB comum).
para ser mais rápido, criei um ramdisk e tentei novamente o mesmo comando. também não parou.
Entendo que urandom
não é um arquivo comum e também strings
a saída é redirecionada, no entanto, nos dois casos acima, o cat
comando relatou o erro quando não havia mais espaço.
# cat /dev/urandom > random.txt
cat: write error: No space left on device
- Esse é o comportamento normal de strings? Se sim, por quê?
- Onde estão os dados gravados depois que não há mais espaço?
strace strings /dev/urandom > /dev/full
strings
implementação do GNU binutils. Eu estava me referindo aostrace
comando.Respostas:
Se o GNU
cat
não conseguir escrever o que leu, ele sairá com um erro :O GNU
strings
, por outro lado, não se importa se conseguiu escrever com sucesso:Portanto, todas essas gravações falham, mas
strings
continuam alegremente, até atingir o final da entrada, o que nunca será.fonte
strings
.