GNU/Linux >> Tutoriels Linux >  >> Linux

Explication de la commande Linux dd pour les débutants (8 exemples)

Parfois, lorsque vous travaillez sur la ligne de commande sous Linux, vous devrez peut-être effectuer une opération de copie de manière à ce que les données/le texte soient formatés avant d'être écrits dans la destination. Un exemple simple pourrait être de copier du texte à partir d'un fichier et d'écrire la version avec changement de casse (du bas vers le haut ou du haut vers le bas) dans le fichier de destination.

Si vous cherchez un moyen de le faire, vous serez heureux de savoir qu'il existe un utilitaire de ligne de commande - appelé dd - qui est construit à cet effet. Dans ce didacticiel, nous discuterons du fonctionnement de l'outil à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples mentionnés ici ont été testés sur Ubuntu 18.04LTS.

Commande Linux dd

En bref, le jj La commande vous permet de copier et de convertir un fichier. L'outil propose des opérandes que vous pouvez utiliser pour spécifier le type de formatage souhaité. Voici la syntaxe générique de la commande telle que décrite sur sa page de manuel :

dd [OPERAND]...
dd OPTION

Les exemples de type Q&A suivants devraient vous donner une bonne idée du fonctionnement de la commande dd.

Q1. Comment changer la casse du texte saisi à l'aide de la commande dd ?

Supposons que vous ayez des lignes de texte écrites en minuscules et que l'exigence soit de les convertir rapidement en majuscules. Vous pouvez le faire en utilisant la conv option de ligne de commande (avec ucase comme sa valeur).

Voici un exemple :

La capture d'écran ci-dessus montre la commande ainsi que le texte saisi. La combinaison de touches Ctrl+d a été utilisé pour dire à dd que nous avons fini d'entrer l'entrée, et dès que cela a été fait, la commande a produit la sortie suivante :

Ainsi, vous pouvez voir que le texte saisi a été converti de minuscules en majuscules. Les trois dernières lignes ne sont que quelques statistiques liées aux opérations.

Remarque :De même, vous pouvez utiliser la valeur lcase pour convertir le texte majuscule en minuscule.

Q2. Comment lire et écrire dans des fichiers à la place ?

Dans le premier exemple ci-dessus, nous avons entré le texte via stdin (entrée standard). Cependant, vous pouvez toujours utiliser des fichiers d'entrée et de sortie. Pour spécifier les noms des fichiers d'entrée et de sortie, utilisez le if et de options de ligne de commande.

Par exemple, si vous souhaitez convertir la casse du texte dans le fichier 1, puis l'écrire dans le fichier 2, vous pouvez le faire de la manière suivante :

dd if=file1 of=file2 conv=ucase

Q3. Comment ignorer du texte lors de la lecture d'une entrée ?

Si vous le souhaitez, vous pouvez demander à dd de sauter certains octets initiaux lors de la lecture du texte d'entrée. Cela peut être fait en utilisant le saut option qui nécessite une valeur numérique. Si, par exemple, cette valeur est 'N', alors dd ignorera les blocs de taille N ibs au début de l'entrée. Cela nous amène à 'ibs', qui est également une autre option dd de ligne de commande dont la valeur spécifie le nombre d'octets que l'outil lit à la fois (la valeur par défaut est 512).

Supposons donc que vous souhaitiez ignorer les 4 premiers octets d'un fichier d'entrée, puis vous devez d'abord définir ibs à 4, puis utilisez 1 comme valeur pour sauter . Cela garantira que l'outil sautera 1 bloc de 4 octets lors de la lecture du fichier d'entrée.

Ainsi, vous pouvez voir que le texte hey, a été ignoré lors de la lecture du fichier 1 - c'est pourquoi il n'apparaît pas dans le fichier 2.

Q4. Comment échanger chaque paire d'octets d'entrée en sortie ?

S'il existe une telle exigence, vous pouvez également utiliser dd pour échanger chaque paire d'octets d'entrée. Ceci peut être réalisé en utilisant un écouvillon comme valeur pour la conv option de ligne de commande. La capture d'écran suivante rendra les choses plus claires :

Q5. Comment faire en sorte que dd ne fonctionne que lorsque le fichier de sortie n'existe pas déjà ?

Si l'exigence est que la commande dd ne doit rien faire lorsque le fichier de sortie existe déjà, alors cette condition peut être appliquée en utilisant le excl valeur pour la conv option.

La capture d'écran suivante montre le cas d'utilisation en action :

Q6. Comment s'assurer que le fichier de sortie est mis à jour en mode ajout ?

Par défaut, dd écrase simplement le fichier de sortie (s'il existe). Mais si vous voulez qu'il ajoute le texte à la place, utilisez la valeur append pour oflag FLAG et notrunc pour conv option.

Par exemple :

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

Voici la commande ci-dessus en action :

Q7. Comment faire en sorte que dd ne crée pas de fichier de sortie ?

Si vous le souhaitez, vous pouvez également forcer la commande dd à ne pas créer de fichier de sortie si le fichier indiqué dans la commande n'existe pas déjà. Cela peut être fait en utilisant le nocreat valeur de la conv option de ligne de commande.

Par exemple :

Q8. Comment contrôler le niveau d'information imprimé sur stderr ?

Si vous le souhaitez, vous pouvez également limiter la quantité d'informations que la commande imprime sur stderr. Cela peut être fait en utilisant le statut option de ligne de commande. Par exemple, si vous souhaitez tout supprimer sauf les messages d'erreur, vous pouvez passer la valeur aucun à cette option de ligne de commande :

dd if=file1 of=file3 status=none

Les autres valeurs disponibles sont noxfer et progrès . Voici ce que dit la page de manuel à propos du statut choix :

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

Conclusion

Les exemples abordés dans ce didacticiel ne font qu'effleurer la surface lorsqu'il s'agit d'explorer ce que toute la commande dd peut faire. Juste pour vous donner une idée, vous pouvez utiliser l'outil pour créer des systèmes de fichiers virtuels ainsi que des sauvegardes de disques durs ou de partitions système. Pour plus d'informations sur dd, rendez-vous sur sa page de manuel.


Linux
  1. Commande Linux paste expliquée pour les débutants (5 exemples)

  2. Commande Linux wc expliquée pour les débutants (6 exemples)

  3. Explication de la commande Linux unexpand pour les débutants (avec exemples)

  4. Commande de sortie Linux expliquée pour les débutants (avec exemples)

  5. Explication de la commande Linux objdump pour les débutants (7 exemples)

Explication de la commande Linux rm pour les débutants (8 exemples)

Commande Linux cut expliquée pour les débutants (avec exemples)

Explication de la commande Linux timeout pour les débutants (avec exemples)

Explication de la commande Linux mv pour les débutants (8 exemples)

La commande Linux md5sum expliquée aux débutants (5 exemples)

Commande d'hôte Linux expliquée pour les débutants (8 exemples)