Diferencia entre revisiones de «Comando dd»

(Fuentes)
Línea 107: Línea 107:
 
==Fuentes==
 
==Fuentes==
 
Autor: Autor: Jason Gunthorpe
 
Autor: Autor: Jason Gunthorpe
Publicado por: Egber Gallardo García
 
  
 
==Enlaces Externos==
 
==Enlaces Externos==

Revisión del 11:34 12 oct 2011

dd
Información sobre la plantilla
Uptime.png
Sistemas Operativos compatiblesUnix
LicenciaGNU

Dd (duplicate disk). Es un comando que se utiliza para transferir datos desde un dispositivo/archivo hacia un dispositivo/archivo.

Sinopsis

      dd   [--help]   [--version]   [if=fichero]   [of=fichero]   [ibs=bytes]
      [obs=bytes]  [bs=bytes]   [cbs=bytes]   [skip=bloques]   [seek=bloques]
      [count=bloques]  [conv={ascii,  ebcdic,  ibm,  block,  unblock,  lcase,
      ucase, swab, noerror, notrunc, sync}]

Descripción

dd copia un fichero (de la entrada estándar a la salida estándar, por omisión) con un tamaño de bloque seleccionable por el usuario, a la par que, opcionalmente, realiza sobre él ciertas conversiones. Lee de la entrada un bloque cada vez, empleando el tamaño de bloque especificado para la entrada (el valor predeterminado es 512 bytes). Si la opción bs=bytes se dio, y no se especificó una conversión aparte de sync, noerror, o notrunc, escribe la cantidad de datos leídos (que podría ser menor de la pedida) en un bloque de salida separado. Este bloque de salida tiene precisamente la misma longitud que cuando se leyó a menos que se haya especificado la conversión sync, en cuyo caso los datos se rellenan con NULos (o espacios, vea más abajo). De otro modo, la entrada, leída un bloque cada vez, se procesa y la salida resultante se recoge y se escribe en bloques del tamaño especificado para el bloque de salida. El bloque de salida final puede ser más corto. Las opciones de más abajo con valores numéricos (bytes y bloques) pueden ir seguidas por un factor multiplicador: `k'=1024, `b'=512, `w'=2, `c'=1 (`w' y `c' son extensiones de GNU; `w' nunca debería utilizarse: significa 2 en System V y 4 en 4.2BSD). Dos o más de tales expresiones numéricas pueden multiplicarse poniendo una `x' (equis minúscula) entre ellas. La versión fileutils-4.0 de GNU también permite los siguientes sufijos multiplicativos al especificar tamaños de bloque (en bs=, cbs=, ibs=, obs=): M=1048576, G=1073741824, y así para T, P, E, Z, Y. Un sufijo `D' los convierte en decimal: kD=1000, MD=1000000, GD=1000000000, etc. (Dese cuenta que para ls, df, du, eltamaño de M, etc., viene determinado por variables de entorno, pero para dd es fijo.)

Opciones

      if=fichero

Lee desde fichero en vez de desde la entrada estándar.

      of=fichero

Escribe a fichero en vez de en la salida estándar. A menos que se haya dado conv=notrunc, dd trunca fichero a cero bytes (o altamaño especificado con seek=).

      ibs=bytes

Lee bytes bytes de una vez. El valor predeterminado es 512.

      obs=bytes

Escribe bytes bytes de una vez. El valor predeterminado es 512.

      bs=bytes

Lee y escribe bytes bytes de una vez. Esto sustituye a ibs y a obs. (Y poner bs no es equivalente a poner ibs y obs a su mismo valor, al menos si no se ha especificado una conversión aparte de sync, noerror y notrunc, puesto que estipula que cada bloque de entrada será copiado en la salida como un solo bloque sin agregar bloques cortos.)

      cbs=bytes

Especifica el tamaño de bloque de conversión para block y unblock.

      skip=bloques

Se salta bloques bloques de tamaño en bytes determinado por ibs del fichero de entrada antes de la copia.

      seek=bloques

Se salta bloques bloques de tamaño en bytes determinado por obs en el fichero de salida antes de la copia.

      count=bloques

Copia bloques bloques de tamaño en bytes determinado por ibs del fichero de entrada, en vez de todo hasta el final del fichero.

      conv=CONVERSIÓN[,CONVERSIÓN]...

Convierte el fichero según se haya especificado en el o los argumentos CONVERSIÓN. (No se permite ningún espacio al lado de ninguna coma.)

Conversiones

             ascii  Convierte EBCDIC a ASCII.
             ebcdic Convierte ASCII a EBCDIC.
             ibm    Convierte ASCII a un EBCDIC alternativo.
             block  Para cada línea de la  entrada, saca cbs bytes, reemplazando el
             salto de línea de la entrada con un espacio y rellenando con más 
             espacios si fuera menester.
             unblock Reemplaza espacios del final en cada bloque de entrada de tamaño 
             determinado por cbs por un salto de línea.
             lcase  Cambia las letras mayúsculas a minúsculas.
             ucase  Cambia las letras minúsculas a mayúsculas.
             swab   Intercambia  cada  par de bytes de la entrada. Si se lee un número
             impar de bytes el último byte se copia tal cual (ya  que  no  tiene  con quién 
             intercambiarse).  [POSIX 1003.2b, PASC interpretaciones 1003.2 nª 3 y nº 4]
             noerror Continúa después de producirse errores de lectura.
             notrunc No trunca el fichero de salida.
             sync   Rellena cada bloque de entrada hasta el tamaño determinado por
             ibs con bytes cero al final.

Opciones Estánadres de GNU

      --help Muestra un mensaje en la salida estándar sobre el modo de empleo y acaba
      con código de éxito.
      --version Muestra en la salida estándar información  sobre  la  versión  y 
      luego acaba con código de éxito.
      --     Termina la lista de opciones.

Ejemplo

A menudo, una unidad de cinta no aceptará bloques de tamaño arbitrario y dd obtendrá un error de E/S en el último fragmento de datos que no ocupe un bloque entero. Use `dd if=mifichero of=/dev/miunidaddecinta conv=sync' para asegurarse de que todo se ha grabado en la cinta. Naturalmente, leerla de nuevo producirá ahora un fichero ligeramente más grande, con caracteres nulos añadidos al final.


Fuentes

Autor: Autor: Jason Gunthorpe

Enlaces Externos