title: Dd (Unix)
text: # Dd (Unix)
  
  dd es un programa de la familia de los sistemas operativos Unix y una orden POSIX, que permite copiar y convertir datos de archivos a bajo nivel.
  Es generalmente usado para realizar operaciones avanzadas sobre dispositivos o archivos, como pueden ser:
  * Transferencias de datos específicos.
  * Copias de seguridad de la información «en crudo» (raw data).
  * Conversión de algunas codificaciones soportadas y/o caracteres predefinidos.
  
  # Dd (Unix)
  ## Descripción
  
  Es importante señalar que, en sistemas operativos Unix, cualquier dispositivo se trata y gestiona como un archivo. Por tanto, la orden dd puede ser utilizada con diversos dispositivos y volúmenes (particiones), más allá de los archivos propiamente dichos.
  Según la especificación POSIX, dd copia el archivo indicado como origen (if, del inglés input file) en el archivo indicado como destino (of, de output file), teniendo en cuenta la conversión de los datos (conversion) y el tamaño de bloque requerido (bs, de block size). Si no se hubiera especificado el origen o el destino, dd por defecto utilizaría la entrada o la salida estándar, respectivamente, para llevar a cabo la operación.
  Si se ha especificado el tamaño de bloque a transferir (mediante el parámetro bs) y no se ha indicado conversión alguna salvo noerror, notrunc o sync, se procede a la lectura, bloque por bloque, del archivo origen, y a su correspondiente escritura en el destino. El tamaño del bloque a escribir es idéntico al del bloque leído, salvo que se indique la conversión sync, en cuyo caso se procede a rellenar con ceros el bloque de destino. Si no se utiliza sync, el último bloque escrito puede ser de tamaño inferior al resto.
  Por último, en caso de que no se haya especificado un tamaño de bloque, dd usa 512 bytes como tamaño por defecto.
  
  # Dd (Unix)
  ## Modo de uso
  
  La invocación de la orden dd tiene el siguiente formato:
  Los principales parámetros son:
  
  # Dd (Unix)
  ## Modo de uso
  ### if=origen
  
      Lee desde el archivo indicado como origen. Por defecto lee de la entrada estándar.
  
  # Dd (Unix)
  ## Modo de uso
  ### of=destino
  
      Escribe al archivo indicado como destino. Por defecto escribe en la salida estándar.
  
  # Dd (Unix)
  ## Modo de uso
  ### ibs=N
  
      Lee N bytes del archivo origen.
  
  # Dd (Unix)
  ## Modo de uso
  ### obs=N
  
      Escribe N bytes en el archivo destino.
  
  # Dd (Unix)
  ## Modo de uso
  ### bs=N
  
      Lee y escribe N bytes. Alternativa a usar ibs y obs con un mismo valor.
  
  # Dd (Unix)
  ## Modo de uso
  ### cbs=N
  
      Establece en N bytes al tamaño del bloque de conversión para block y unblock.
  
  # Dd (Unix)
  ## Modo de uso
  ### skip=N
  
      Se salta N bloques del archivo origen antes realizar la operación de copiado. El tamaño del bloque es indicado por ibs.
  
  # Dd (Unix)
  ## Modo de uso
  ### seek=N
  
      Se salta N bloques del archivo destino antes realizar la operación de copiado. El tamaño del bloque es indicado por obs.
  
  # Dd (Unix)
  ## Modo de uso
  ### count=N
  
      Copia N bloques del archivo origen, en vez de procesar hasta el final. El tamaño del bloque es indicado por ibs.
  
  # Dd (Unix)
  ## Modo de uso
  ### conv=modo[, modo,...]
  
      Realiza las operaciones de conversión, según se indique. Se puede indicar más de una conversión, separándolas por comas.
      Conversiones soportadas:
  
  # Dd (Unix)
  ## Modo de uso
        ### ascii
  
            Convierte los caracteres EBCDIC a ASCII.
  
  # Dd (Unix)
  ## Modo de uso
        ### ebcdic
  
            Convierte los caracteres ASCII a EBCDIC.
  
  # Dd (Unix)
  ## Modo de uso
        ### ibm
  
            Convierte los caracteres ASCII al EBCDIC de IBM.
  
  # Dd (Unix)
  ## Modo de uso
        ### lcase
  
            Intercambia las mayúsculas por minúsculas.
  
  # Dd (Unix)
  ## Modo de uso
        ### ucase
  
            Intercambia las minúsculas por mayúsculas.
  
  # Dd (Unix)
  ## Modo de uso
        ### swab
  
            Intercambia cada par de bytes de la entrada. Para el caso especial del último byte, este se copia directamente.
  
  # Dd (Unix)
  ## Modo de uso
        ### noerror
  
            No se detiene el proceso ante errores de lectura en el origen.
  
  # Dd (Unix)
  ## Modo de uso
        ### notrunc
  
            No se trunca el archivo utilizado como destino.
  
  # Dd (Unix)
  ## Modo de uso
        ### sync
  
            Rellena cada bloque leído con ceros, hasta el tamaño determinado por ibs.
  
  # Dd (Unix)
  ## Modo de uso
        ### block
  
            Rellenar con espacios en blanco la línea leída, hasta el tamaño indicado por cbs. Reemplaza el carácter de nueva línea por espacios, convirtiendo la línea en un bloque (o registro).
  
  # Dd (Unix)
  ## Modo de uso
        ### unblock
  
            Reemplazar los últimos espacios en blanco por un carácter de salto de línea del registro leído, que posea el tamaño indicado por cbs. Realiza la operación inversa a block.
  
  # Dd (Unix)
  ## Usos
  
  Dada la naturaleza de la instrucción dd de operar a bajo nivel (bytes), es posible utilizarlo para diversos fines.
  
  # Dd (Unix)
  ## Usos
  ### Eliminación de datos
  
  Se realiza un formateo a medio nivel (sustituir todos los bits del disco archivo o carpeta por 0) mediante (con permisos de root)
  Sin embargo esto deja abierta la posibilidad de leer los datos presentes antes del borrado en el disco mediante métodos avanzados. Si se quiere una protección completa, en lugar de escribir ceros en el disco, se recomienda escribir datos aleatorios utilizando
  El generador de números aleatorios urandom funcionará de forma ligeramente diferente en los distintos tipos de sistemas UNIX, por lo que es recomendable verificarlo antes de utilizarlo.
  
  # Dd (Unix)
  ## Usos
  ### Creación de unidades USB
  
  Otro de los principales usos de dd es la creación de unidades USB autoarrancables, mediante la sintaxis:
  Donde N es la unidad USB que necesitamos autoarrancar.
  
  # Dd (Unix)
  ## Usos
  ### Clonar una partición
  
  Desde el disco /dev/sda partición 1, al disco /dev/sdb partición 1:
  Si la partición de salida sdb1 en el ejemplo) no existe, dd creará un archivo con este nombre y comenzará a llenar el sistema de archivos raíz.
  
  # Dd (Unix)
  ## Usos
  ### Clonar un disco duro completo
  
  Desde el disco /dev/sda al disco /dev/sdb:
  Esta orden clonará toda la unidad, incluido el MBR (y, por lo tanto, el cargador de arranque), todas las particiones, UUID y datos.