Comando dd · 6 min read · Sep 19, 2025

Comando dd de Linux Explicado para Principiantes (8 Ejemplos)

El comando dd es una poderosa utilidad utilizada para la copia y conversión de datos a bajo nivel en sistemas Linux. Significa “duplicador de datos” y se emplea a menudo para crear copias exactas de archivos, particiones o discos enteros, lo que lo hace útil para tareas como crear copias de seguridad, clonar unidades o escribir imágenes de disco en medios físicos. El comando puede copiar y convertir datos entre archivos o dispositivos, con opciones para controlar el tamaño de bloque, omitir o buscar datos, e incluso aplicar filtros como compresión o intercambio de bytes. Debido a su capacidad para trabajar a un nivel tan fundamental, dd debe usarse con precaución, ya que un uso incorrecto puede resultar en pérdida o corrupción de datos.

En este tutorial, discutiremos cómo funciona la herramienta utilizando algunos ejemplos fáciles de entender. Pero antes de hacer eso, vale la pena mencionar que todos los ejemplos mencionados aquí han sido probados en Ubuntu 24.04.

Comando dd de Linux

En resumen, el comando dd te permite copiar y convertir un archivo. La herramienta ofrece algunos operandos que puedes usar para especificar qué tipo de formato deseas. Aquí está la sintaxis genérica del comando como se describe en su página de manual:

dd [OPERAND]...
dd OPTION

Crear una unidad USB booteable desde un archivo ISO usando el comando dd

Un uso común del comando dd en Linux es crear una unidad USB booteable desde un archivo ISO. Esto se hace a menudo al preparar una memoria USB para instalar un sistema operativo. El comando se vería algo así:

sudo dd if=/path/to/your.iso of=/dev/sdX bs=4M status=progress && sync

En este ejemplo:

  • if=/path/to/your.iso especifica el archivo de entrada, que es la imagen ISO.
  • of=/dev/sdX especifica el archivo de salida, que es la unidad USB (reemplaza X con la letra apropiada para tu dispositivo USB).
  • bs=4M establece el tamaño de bloque en 4 megabytes, optimizando el proceso de copia.
  • status=progress proporciona actualizaciones en tiempo real sobre el progreso de la copia.
  • sync asegura que todos los datos se escriban en la USB antes de que se complete el proceso.

Este comando creará una unidad USB booteable que se puede usar para instalar el sistema operativo contenido en el archivo ISO.

Preguntas Frecuentes

Los siguientes ejemplos tipo Q&A deberían darte una buena idea de cómo funciona el comando dd.

P1. ¿Cómo cambiar el caso del texto de entrada usando el comando dd?

Supongamos que tienes algunas líneas de texto escritas en minúsculas, y el requisito es convertirlas rápidamente a mayúsculas. Puedes usar la opción de línea de comando conv (con ucase como su valor).

Aquí hay un ejemplo:

La captura de pantalla anterior muestra el comando así como el texto de entrada. Se utilizó la combinación de teclas Ctrl+d para indicar a dd que hemos terminado de ingresar la entrada, y tan pronto como eso se hizo, el comando produjo la siguiente salida:

Así que puedes ver que el texto de entrada fue convertido de minúsculas a mayúsculas. Las últimas tres líneas son solo algunas estadísticas relacionadas con la operación.

Nota: De manera similar, puedes usar el valor lcase para convertir texto en mayúsculas a minúsculas.

P2. ¿Cómo leer y escribir en archivos en su lugar?

Ingresamos el texto a través de stdin (entrada estándar) en el primer ejemplo anterior. Sin embargo, siempre puedes usar archivos de entrada y salida. Para especificar los nombres de los archivos de entrada y salida, usa las opciones de línea de comando if y of.

Por ejemplo, si deseas convertir el caso del texto en file1 y luego escribirlo en file2, puedes hacerlo de la siguiente manera:

dd if=file1 of=file2 conv=ucase

P3. ¿Cómo omitir texto al leer la entrada?

Si lo deseas, puedes pedirle a dd que omita algunos bytes iniciales al leer el texto de entrada. Esto se puede hacer utilizando la opción skip, que requiere un valor numérico. Si, digamos, este valor es ‘N’, entonces dd omitirá N bloques del tamaño de ibs al inicio de la entrada. Esto nos lleva a ‘ibs’, otra opción de línea de comando de dd cuyo valor especifica el número de bytes que la herramienta lee a la vez (el valor predeterminado es 512).

Así que, supongamos que deseas omitir los primeros 4 bytes de un archivo de entrada. Primero debes establecer it en 4 y luego usar 1 como el valor de omisión. Esto asegurará que la herramienta omita 1 bloque de 4 bytes mientras lee el archivo de entrada.

Así que puedes ver que el texto hey, fue omitido al leer file1 - por eso no apareció en file2.

P4. ¿Cómo intercambiar cada par de bytes de entrada en la salida?

También puedes usar dd para intercambiar cada par de bytes de entrada si hay tal requisito. Esto se puede lograr utilizando swab como valor para la opción de línea de comando conv. La siguiente captura de pantalla hará las cosas más claras:

P5. ¿Cómo hacer que dd solo funcione cuando el archivo de salida no existe ya?

Si el requisito es que el comando dd no haga nada cuando el archivo de salida ya existe, entonces el valor excl para la opción conv puede hacer cumplir esta condición.

La siguiente captura de pantalla muestra el caso de uso en acción:

P6. ¿Cómo asegurarse de que el archivo de salida se actualice en modo de anexado?

Por defecto, dd simplemente sobrescribe el archivo de salida (si existe). Pero si deseas que anexe el texto en su lugar, usa el valor append para la bandera oflag y notrunc para la opción conv.

Por ejemplo:

dd if=file1 of=file3 oflag=append conv=notrunc

Aquí está el comando anterior en acción:

Cómo asegurarse de que el archivo de salida se actualice en modo de anexado

P7. ¿Cómo hacer que dd no cree un archivo de salida?

Si lo deseas, también puedes forzar al comando dd a no crear un archivo de salida si el archivo dado en el comando no existe ya. Esto se puede hacer utilizando el valor nocreat de la opción de línea de comando conv.

Por ejemplo:

P8. ¿Cómo controlar el nivel de información impresa en stderr?

Si lo deseas, también puedes limitar la cantidad de información que el comando imprime en stderr. Esto se puede hacer utilizando la opción de línea de comando status. Por ejemplo, si deseas suprimir todo menos los mensajes de error, puedes pasar el valor none a esta opción de línea de comando:

dd if=file1 of=file3 status=none

Otros valores disponibles son noxfer y progress. Aquí está lo que dice la página de manual sobre la opción status:

status=LEVEL
              El  NIVEL  de información a imprimir en stderr; 'none' suprime
              todo menos los mensajes de error,  'noxfer'  suprime  las  estadísticas
              finales de transferencia, 'progress' muestra estadísticas de transferencia
              periódicas

Conclusión

Los ejemplos discutidos en este tutorial solo raspan la superficie al explorar todo lo que el comando dd puede hacer. Solo para darte una idea, puedes usar la herramienta para crear sistemas de archivos virtuales y copias de seguridad de discos duros o particiones del sistema. Para más información sobre dd, dirígete a su página de manual.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.