Comando Linux dd explicado para principiantes (8 ejemplos)

Ejemplo

A veces, mientras trabaja en la l√≠nea de comando en Linux, es posible que deba realizar una operaci√≥n de copia de manera que los datos/texto se formatee antes de que se escriban en el destino. Un ejemplo sencillo podr√≠a ser copiar texto de un archivo y escribir la versi√≥n con cambio de may√ļsculas y min√ļsculas (de inferior a superior o de superior a inferior) en el archivo de destino.

Si ha estado buscando una manera de hacer esto, le alegrará saber que existe una utilidad de línea de comandos, denominada dd Рque está construido para este propósito. En este tutorial, discutiremos cómo funciona la herramienta usando algunos ejemplos fáciles de entender. Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos mencionados aquí se probaron en Ubuntu 18.04LTS.

Comando dd de Linux

En resumen, el dd El comando le permite copiar y convertir un archivo. La herramienta ofrece algunos operandos que puede usar para especificar qué tipo de formato desea. Aquí está la sintaxis genérica del comando como se describe en su página de manual:

dd [OPERAND]...
dd OPTION

Los siguientes ejemplos de preguntas y respuestas deberían darle una buena idea sobre cómo funciona el comando dd.

Q1. ¬ŅC√≥mo cambiar el caso del texto de entrada usando el comando dd?

Suponga que tiene algunas l√≠neas de texto escritas en min√ļsculas y el requisito es convertirlas r√°pidamente a may√ļsculas. Puedes hacerlo usando el conversi√≥n opci√≥n de l√≠nea de comando (con caso como su valor).

Aquí hay un ejemplo:

Ejemplo

La captura de pantalla anterior muestra el comando y el texto de entrada. La combinación de teclas Ctrl+d se usó para decirle a dd que hemos terminado de ingresar la entrada, y tan pronto como se hizo, el comando produjo el siguiente resultado:

Cómo cambiar el caso del texto de entrada usando el comando dd

Entonces puede ver que el texto de entrada se convirti√≥ de min√ļsculas a may√ļsculas. Las √ļltimas tres l√≠neas son solo algunas estad√≠sticas relacionadas con la operaci√≥n.

Nota: Del mismo modo, puede utilizar el valor caso para convertir texto en may√ļsculas a min√ļsculas.

Q2. ¬ŅC√≥mo leer y escribir archivos en su lugar?

En el primer ejemplo anterior, ingresamos el texto a través de stdin (entrada estándar). Sin embargo, siempre puede usar archivos de entrada y salida. Para especificar los nombres de los archivos de entrada y salida, use el si y de opciones de línea de comandos.

Por ejemplo, si desea convertir el texto en may√ļsculas y min√ļsculas en el archivo 1 y luego escribirlo en el archivo 2, puede hacerlo de la siguiente manera:

dd if=file1 of=file2 conv=ucase

Cómo leer y escribir en archivos en su lugar

Q3. ¬ŅC√≥mo omitir texto mientras lee la entrada?

Si lo desea, puede pedirle a dd que omita algunos bytes iniciales mientras lee el texto de entrada. Esto se puede hacer usando el saltar opci√≥n que requiere un valor num√©rico. Si, por ejemplo, este valor es ‘N’, entonces dd omitir√° bloques de tama√Īo N ibs al comienzo de la entrada. Esto nos lleva a ‘ibs’, que tambi√©n es otra opci√≥n dd de la l√≠nea de comandos cuyo valor especifica el n√ļmero de bytes que lee la herramienta a la vez (el valor predeterminado es 512).

Entonces, suponga que desea omitir los primeros 4 bytes de un archivo de entrada, luego primero debe establecer ibs en 4 y luego usar 1 como valor para omitir. Esto asegurar√° que la herramienta omita 1 bloque de 4 bytes mientras lee el archivo de entrada.

Cómo omitir texto mientras se lee la entrada

Entonces puede ver que el texto hey, se omitió mientras se leía el archivo 1; es por eso que no apareció en el archivo 2.

Q4. ¬ŅC√≥mo intercambiar cada par de bytes de entrada en la salida?

Si existe tal requisito, también puede usar dd para intercambiar cada par de bytes de entrada. Esto se puede lograr usando torunda como valor para el conversión opción de línea de comando. La siguiente captura de pantalla hará las cosas más claras:

Cómo intercambiar cada par de bytes de entrada en la salida

P5. ¬ŅC√≥mo hacer que dd solo funcione cuando el archivo de salida a√ļn no existe?

Si el requisito es que el comando dd no haga nada cuando el archivo de salida ya existe, entonces esta condición se puede aplicar usando el excluido valor para el conversión opción.

La siguiente captura de pantalla muestra el caso de uso en acción:

C√≥mo hacer que dd solo funcione cuando el archivo de salida a√ļn no existeAnuncio publicitario

P6. ¬ŅC√≥mo asegurarse de que el archivo de salida se actualice en modo de adici√≥n?

De forma predeterminada, dd simplemente sobrescribe el archivo de salida (si existe). Pero si desea agregar el texto en su lugar, use el valor adjuntar por oflag BANDERA y notrunc por conversión opción.

Por ejemplo:

dd if=file1 of=file3 oflag=append conv=notrunc

Aquí está el comando anterior en acción:

Cómo asegurarse de que el archivo de salida se actualice en modo de adición

P7. ¬ŅC√≥mo hacer que dd no cree un archivo de salida?

Si lo desea, tambi√©n puede forzar el comando dd para que no cree un archivo de salida si el archivo proporcionado en el comando a√ļn no existe. Esto se puede hacer usando el nocrear valor de la conversi√≥n opci√≥n de l√≠nea de comando.

Por ejemplo:

Cómo hacer que dd no cree un archivo de salida

P8. ¬ŅC√≥mo controlar el nivel de informaci√≥n impresa en stderr?

Si lo desea, también puede limitar la cantidad de información que el comando imprime en stderr. Esto se puede hacer usando el estado opción de línea de comandos. Por ejemplo, si desea suprimir todo menos los mensajes de error, puede pasar el valor ninguna a esta opción de línea de comandos:

dd if=file1 of=file3 status=none

Otros valores disponibles son noxfer y Progreso. Esto es lo que dice la página del manual sobre el estado opción:

status=LEVEL
              The  LEVEL  of information to print to stderr; 'none' suppresses
              everything but error messages,  'noxfer'  suppresses  the  final
              transfer  statistics, 'progress' shows periodic transfer statis?
              tics

Conclusión

Los ejemplos discutidos en este tutorial solo rascan la superficie cuando se trata de explorar todo lo que puede hacer el comando dd. Solo para darle una idea, puede usar la herramienta para crear sistemas de archivos virtuales, así como copias de seguridad de discos duros o particiones del sistema. Para obtener más información sobre dd, diríjase a su página man.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *