dd (Unix)


dd es una utilidad de línea de comandos para Unix y sistemas operativos similares a Unix , cuyo propósito principal es convertir y copiar archivos. [1]

En Unix, los controladores de dispositivos para hardware (como unidades de disco duro ) y archivos de dispositivos especiales (como / dev / zero y / dev / random ) aparecen en el sistema de archivos como archivos normales; dd también puede leer y / o escribir desde / hacia estos archivos, siempre que la función esté implementada en su controlador respectivo. Como resultado, dd se puede utilizar para tareas como hacer una copia de seguridad del sector de arranque de un disco duro y obtener una cantidad fija de datos aleatorios. El programa dd también puede realizar conversiones de los datos a medida que se copian, incluido el intercambio de orden de bytes y la conversión desde y hacia ASCII yCodificaciones de texto EBCDIC . [2]

El nombre dd es una alusión a la declaración DD que se encuentra en Job Control Language (JCL) de IBM, [ 3 ] [4] en la que es una abreviatura de "Definición de datos". [5] La sintaxis del comando se parece a una declaración JCL más que otros comandos de Unix, tanto que Eric S. Raymond dice que "el diseño de la interfaz fue claramente una broma". [3] La interfaz se rediseñó en el comando dd de Plan 9 para usar un estilo de opción de línea de comandos. [6] a veces se le llama con humor "Disk Destroyer", debido a sus capacidades de borrado de unidades. [7] dd

Originalmente destinado a convertir entre ASCII y EBCDIC , dd apareció por primera vez en la versión 5 de Unix . [8] El comando dd se especifica desde el número 2 de 1987 de X / Open Portability Guide. Este es heredado por IEEE Std 1003.1-2008 ( POSIX ), que es parte de la Especificación Única de UNIX . [9]

La versión de coreutilsdd incluida en GNU fue escrita por Paul Rubin, David MacKenzie y Stuart Kemp. [10]

La sintaxis de la línea de comandos de dd difiere de muchos otros programas de Unix. Utiliza la sintaxis option = value para sus opciones de línea de comandos en lugar de los formatos más estándar - option value o - option = value . De forma predeterminada, dd lee desde stdin y escribe en stdout , pero estos se pueden cambiar usando las opciones if (archivo de entrada) y of (archivo de salida). [9]