Opciones avanzadas del comando dd
Más allá de los parámetros básicos, el comando dd
ofrece varias opciones avanzadas que brindan un control adicional sobre el proceso de copiado. Exploremos algunas de las más útiles:
La opción status
La opción status=
controla cómo dd
muestra su progreso. Esto es especialmente útil cuando se copian archivos grandes.
- Creemos otro archivo de muestra:
for i in {1..20}; do echo "Line $i: The dd command provides detailed status information." >> ~/project/status_example.txt; done
- Usemos
dd
con la opción status=progress
:
dd if=~/project/status_example.txt of=~/project/status_copy.txt bs=1k status=progress
Con la opción status=progress
, dd
mostrará información de progreso en tiempo real durante la operación de copiado.
La opción status admite varios valores:
none
: No mostrar información
noxfer
: Mostrar todo excepto las estadísticas de transferencia
progress
: Mostrar estadísticas periódicas de transferencia
Las opciones skip y seek
Las opciones skip=
y seek=
te permiten omitir bloques en los archivos de entrada y salida respectivamente, lo cual es útil para apuntar a secciones específicas de los archivos.
- Usemos
skip
para comenzar a copiar desde la mitad de nuestro archivo de prueba:
dd if=~/project/block_test.txt of=~/project/skipped_copy.txt bs=10 skip=10
La opción skip=10
le indica a dd
que omita los primeros 10 bloques (cada uno de 10 bytes de tamaño) del archivo de entrada antes de comenzar a copiar.
- Comprobemos el resultado:
cat ~/project/skipped_copy.txt
Deberías ver que se ha omitido el inicio del archivo.
- Ahora usemos la opción
seek
para dejar espacio al principio del archivo de salida:
dd if=~/project/block_test.txt of=~/project/seek_example.txt bs=10 seek=5
La opción seek=5
instruye a dd
a omitir 5 bloques al principio del archivo de salida antes de escribir cualquier dato.
- Examinemos el archivo de salida:
hexdump -C ~/project/seek_example.txt | head
Esto te mostrará que el archivo comienza con 50 bytes de ceros (5 bloques de 10 bytes) antes de que comience los datos reales.
Las opciones iflag y oflag
Las opciones iflag=
y oflag=
controlan el manejo especial de los archivos de entrada y salida:
dd if=~/project/block_test.txt of=~/project/direct_copy.txt bs=4k iflag=direct,fullblock
Algunas banderas comunes incluyen:
direct
: Usar E/S directa para los datos
dsync
: Usar E/S sincronizada para los datos
sync
: Usar E/S sincronizada para los datos y los metadatos
nonblock
: Usar E/S no bloqueante
fullblock
: Acumular bloques completos de entrada
Estas opciones avanzadas convierten a dd
en una herramienta versátil para diversas tareas del sistema, incluyendo la creación de copias de seguridad, la clonación de discos y la recuperación de datos.