¿Qué hace exactamente el comando dd?


8

Hace unos días me encantó descubrir que no es tan difícil escribir una imagen iso en un USB sin la ayuda de un programa de terceros diseñado explícitamente para hacerlo. Pero el comando (o programa) que facilita esto, dd, me desconcierta.

Según Wikipedia, está diseñado para copiar y convertir datos sin procesar, pero sinceramente, esta definición me parece muy ambigua y vaga. Entiendo que le permite convertir un dato en otro, pero ¿qué sucede si el archivo de salida especificado es demasiado pequeño para convertirse en el archivo de entrada especificado?

dd if=giant_file of=tiny_file

Además, cuando creo un USB de arranque con un archivo de imagen, el USB alcanza un tipo de sistema de archivos de isofs , pero si escribo un archivo o ejecutable en la unidad, conserva su tipo de sistema de archivos normal.

Cualquier aclaración de lo que realmente hace el comando dd o cómo funciona en un nivel inferior sería muy apreciada. ¡Gracias!

Respuestas:


8

ddrealiza una copia byte por byte del origen al destino, con una conversión opcional especificada por el convargumento. Se realiza lecturas y escrituras según lo especificado por el *bsy *flagopciones, con el rango definido por los count, skipy seekopciones.

¿Qué sucede si el archivo de salida especificado es demasiado pequeño para convertirse en el archivo de entrada especificado?

Si ofes demasiado pequeño para contener if, los datos se truncan para ajustarse. Tenga en cuenta que si se oftrata de un archivo normal, se sobrescribe.


1
ofse sobrescribe incluso si no es un archivo; esta es una forma muy buena de destruir (accidentalmente) una partición / unidad. Es por eso que es muy importante duplicar y quizás verificar tres veces el destino si se trata de una unidad / partición, para asegurarse de tener la correcta.
Bob

1
Técnicamente, escribe en el objeto en lugar de sobrescribirlo.
Ignacio Vazquez-Abrams

Gracias por la respuesta. ¿Qué sucede si no incluye ningún argumento, pero hace algo como dd if=executable of=archive.tar, suponiendo que ambos sean del mismo tamaño? ¿El archivo se transformará perfectamente en el ejecutable?
ICoffeeConsumer

1
Hará una copia byte por byte de executablehasta archive.tar512 bytes a la vez. No convertirá el binario en un archivo.
Ignacio Vazquez-Abrams

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.