El strings
comando se comporta de manera extraña, aparentemente no deja de escribir en un archivo incluso si la unidad se queda sin espacio. ¿O tal vez me estoy perdiendo algo?
Ejecuto lo siguiente:
# strings /dev/urandom > random.txt
Esto seguía funcionando y no se detenía incluso después de llenar el disco (un flash usb normal).
luego, para ser más rápido, creé un ramdisk e intenté nuevamente el mismo comando. Tampoco se detuvo.
Entiendo que urandom
no es un archivo normal y que strings
la salida también se redirige, sin embargo, en los dos casos anteriores, el cat
comando informó el error cuando no había más espacio.
# cat /dev/urandom > random.txt
cat: write error: No space left on device
- ¿Es este el comportamiento normal de las cuerdas? Si es así, ¿por qué?
- ¿Dónde se escriben los datos después de que no queda más espacio?
strace strings /dev/urandom > /dev/full
strings
implementación de GNU binutils. Me refería alstrace
comando.Respuestas:
Si GNU
cat
no puede escribir lo que lee, saldrá con un error :A GNU
strings
, por otro lado, no le importa si logró escribir con éxito:Por lo tanto, todas esas escrituras fallan, pero
strings
continúan alegremente, hasta que llega al final de la entrada, que nunca será.fuente
strings
.