dd

De Wikiunix


La orden dd copia un archivo, pudiendo convirtierlo y cambiar su formato en la operación. Nótese que el fichero puede ser un fichero especial que represente un dispositivo o partición, caso en el cual se haría copia de todo su contenido.

Contenido

Sintaxis

La sintaxis es:
dd [CADENA]...
dd [--help] [--version] [if=fichero] [of=fichero] [ibs=bytes]

Algunas de las opciones que soporta son:

  • bs=BYTES: lee y escribe la cantidad BYTES de bytes por vez (ver ibs=,obs=)
  • cbs=BYTES: convierte la cantidad BYTES de bytes por vez
  • conv=CONVS: convierte el archivo en una lista de símbolos separados por comas
  • count=BLOCKS: copiar sólo la cantidad BLOCKS de bloques de entrada
  • ibs=BYTES: leer la cantidad BYTES de bytes por vez (por omisión: 512)
  • if=FILE: leer desde FILE en vez de stdin
  • iflag=FLAGS: leer según la lista de símbolos separados por coma
  • obs=BYTES: escribir BYTES bytes a la vez (por defecto: 512)
  • of=FILE: escribir a FILE en vez de stdout
  • oflag=FLAGS: escribir según la lista de símbolos separados por coma
  • seek=BLOCKS: saltar BLOCKS paquetes del tamaño fijado por obs (output block size) al inicio de la operación de salida
  • skip=BLOCKS: saltar BLOCKS paquetes del tamaño fijado por ibs (input block size) al inicio de la operación de entrada
  • status=noxfer: suprimir las estadísticas de transferencia

Unidades

Las cantidades BLOCKS y BYTES pueden tener los siguientes sufijos multiplicativos:

  • c = 1
  • w = 2
  • b = 512
  • kB = 1000
  • K = 1024
  • MB = 1000*1000
  • M = 1024*1024
  • xM =M
  • GB =1000*1000*1000
  • G = 1024*1024*1024
  • Lo mismo para T, P, E, Z, Y

Conversiones

Cada símbolo CONV puede ser:

  • ascii: de EBCDIC a ASCII
  • ebcdic: de ASCII a EBCDIC
  • ibm: de ASCII a EBCDIC alternativo
  • block: rellenar con espacios los registros terminados en nueva línea hasta el tamaño de cbs
  • unblock: sustituir los espacios finales en los registros de tamaño cbs con un carácter de nueva línea
  • lcase: cambiar las mayúsculas a minúsculas
  • nocreat: no crear archivo de salida
  • excl: fallar si el archivo de salida ya existe
  • notrunc: no truncar el archivo de salida
  • ucase: cambiar minúsculas a mayúsculas
  • swab: intercambiar cada par de bytes de entrada.
  • noerror: continúa luego de leer errores
  • sync: rellena cada bloque de entrada con NULLs hasta tamaño-ibs; cuando es usado con bloquear o desbloquear, rellena con espacios en lugar de NULLs
  • fdatasync: escribe el archivo de datos de salida físicamente antes de finalizar
  • fsync: de igual modo, pero tambien escribe metadatos

Banderas

Cada símbolo FLAG puede ser:

  • append: modo agregar (solo tiene sentido para salida; se recomienda conv=notrunc)
  • direct: usar E/S directa para datos
  • dsync: usar E/S sincronizada para datos
  • sync: de la misma forma, pero también para metadatos
  • fullblock: acumula bloques completos de la entrada (sólo iflag)
  • nonblock: usar I/O no-bloqueante
  • noatime: no actualiza la hora de acceso
  • noctty: no asignar una terminal de control desde archivo
  • nofollow: no seguir enlaces simbólicos

Ejemplos

  • Crear una imagen ISO de un CD:
dd if=/dev/cdrom of=/tmp/imagen.iso
  • Copiar desde la unidad de cinta 0 a la unidad de cinta 1, utilizando un dispositivo histórico común con una convención de nomenclatura:
dd if=/dev/rmt0h of=/dev/rmt1h
  • Quitar los 8 primeros bytes de la entrada estándar:
dd ibs=8 skip=1
  • Leer una cinta EBCDIC dividida en diez bloques de imágenes de 80 bytes cada uno en un fichero ASCII x:
dd if=/dev/tape of=x ibs=800 cbs=80 conv=ascii,lcase

Véase también

Herramientas personales