El comando dd copia y convierte archivos para permitir que se transfieran de un tipo de medio a otro. El comando dd tiene varios operandos o acciones para realizar.
Operando | Solía |
---|---|
if={nombre de archivo} | Especifique el archivo del que se leerán los datos. |
of={nombre de archivo} | Especifique el archivo en el que se escribirán los datos. |
bs={bytes} | Especifique el tamaño total del bloque para leer y escribir, en bytes. Los bytes también se pueden formatear de una manera más amigable para los humanos, como 50M para especificar 50 megabytes y 10G para especificar 10 gigabytes. |
cuenta={bloques} | Especifique el número de bloques que se escribirán en el archivo de salida desde el archivo de entrada. |
estado={nivel} | Especifique el nivel de información para imprimir con error estándar:ninguno para suprimir todo excepto los mensajes de error, noxfer para suprimir las estadísticas de transferencia total, progreso para mostrar estadísticas de transferencia periódicamente. |
Sintaxis
La sintaxis del comando dd es:
# dd [options] [operands]
Uso de dd para copias de seguridad
Puede usar dd para realizar una copia de seguridad completa de una partición de almacenamiento. El siguiente ejemplo copia datos de /dev/sda1 a /dev/sdb2:
# dd if=/dev/sda of=/dev/sdb
Usando dd, también puede crear una imagen de una unidad y luego clonar una segunda unidad con ella:
# dd if=/dev/sda of=drive_image.iso # dd if=drive_image.iso of=/dev/sdb
Ejemplos de comandos dd
1. Para copiar un archivo:
# dd if=old.txt of=old.txt
2. Para leer y escribir bytes específicos de un archivo a la vez:
# dd bs=1024 if=old.txt of=old.txt
3. Para convertir un archivo a un formato específico:
# dd bs=1024 if=old.txt of=new.txt conv=ascii (from EBCDIC to ASCII) # dd bs=1024 if=old.txt of=new.txt conv=ebcdic (from ASCII to EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=ibm (from ASCII to alternate EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=block (pad oldline-terminated records with spaces to cbs-size) # dd bs=1024 if=old.txt of=new.txt conv=unblock (replace trailing spaces in cbs-size records with oldline) # dd bs=1024 if=old.txt of=new.txt conv=lcase (change upper case to lower case) # dd bs=1024 if=old.txt of=new.txt conv=excl (fail if the output old already exists) # dd bs=1024 if=old.txt of=new.txt conv=notrunc (do not truncate the output old) # dd bs=1024 if=old.txt of=new.txt conv=ucase (change lower case to upper case) # dd bs=1024 if=old.txt of=new.txt conv=swab (swap every pair of input bytes) # dd bs=1024 if=old.txt of=new.txt conv=noerror (continue after read errors) # dd bs=1024 if=old.txt of=new.txt conv=sync (pad every input block with NULs to ibs-size) # dd bs=1024 if=old.txt of=new.txt conv=fdatasync (physically write output old data before finishing) # dd bs=1024 if=old.txt of=new.txt conv=fsync (likewise, but also write metadata)
4. Para copiar solo un número específico de bloques:
# dd count=1024 if=old.txt of=new.txt
5. Para copiar un archivo especificando un indicador:
# dd if=old.txt of=new.txt oflag=append # dd if=old.txt iflag=directory of=new.txt oflag=directory # dd if=old.txt iflag=noatime of=new.txt oflag=append
6. Para convertir bytes específicos a la vez:
# dd cbs=1024 if=old.txt of=new.txt
7. Para leer un número específico de bytes a la vez:
# dd ibs=1024 if=old.txt of=new.txt
8. Para escribir un número específico de bytes a la vez:
# dd obs=1024 if=old.txt of=new.txt
9. Para omitir un número específico de bloques al inicio de o/p:
# dd seek=1024 if=old.txt of=new.txt
10. Para omitir un número específico de bloques al inicio de i/p:
# dd skip=1024 if=old.txt of=new.txt
11. Para suprimir las estadísticas de transferencia:
# dd status=noxfer if=old.txt of=new.txt
12. Para borrar la tabla de particiones de un dispositivo:
# dd if=/dev/zero of=/dev/sda4 bs=512 count=1