Dd (Unix) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

dd est une commande unix permettant de copier un fichier en effectuant des conversions, en ne sélectionnant qu'une partie de données à copier, et bien d'autres options. Il est particulièrement adapté à la copie sur des périphériques blocs tel que des disques durs ou des lecteurs CD-ROM.

Origine du nom

Plusieurs théories existent pour justifier le nom de cette commande.

L'une dit que l'on voulait nommer cette commande cc pour Copy and Convert, mais ce nom de commande était déjà utilisée par le compilateur C, on a utilisé la lettre de l'alphabet suivant la lettre 'c' : dd.

Selon le manuel d'utilisation de certaines distributions Unix, ce serait l'acronyme de data dump.

Et selon la page anglophone de Wikipedia sur dd, ce nom viendrait de "dataset definition" et serait une commande de l'IBM JCL (donc antérieure à Unix et au langage C) qui aurait gardé la syntaxe de cette machine.

Certains lui attribuent le rétro-acronyme satirique Data Destroyer (destructeur de données), car en effet, une simple erreur de manipulation de cette commande sur un disque dur peut détruire irrémédiablement les données sans aucun avertissement.

Exemples

Il faut toujours faire attention lorsqu'on utilise dd. Le simple fait d'oublier une option ou d'échanger if et of peut avoir des conséquences désastreuses.

Faire une image CD ou DVD

      $> dd if=/dev/cdrom of=image-cd.iso      

Formatter une disquette à partir d'une image :

      $> dd if=image-disquette.bin of=/dev/fd0      

Découper un fichier en tranche de 100 Mio :

      $> dd bs=10K count=10K if=grosfichier of=grosfichier-part1      $> dd bs=10K count=10K skip=10K if=grosfichier of=grosfichier-part2      $> dd bs=10K count=10K skip=20K if=grosfichier of=grosfichier-part3      $> dd bs=10K count=10K skip=30K if=grosfichier of=grosfichier-part4      # et ainsi de suite      

Faire une copie de la table de partition du disque hda :

      $> dd if=/dev/hda of=copie-table-partition bs=512 count=1      

Détruire les données d'un disque dur hda en le remplissant de zéros (non-recommandé) :

      $> dd if=/dev/zero of=/dev/hda      

Inverse les deux octets du fichier nuxi et écrit la sortie dans le fichier unix

      $> dd if=nuxi of=unix conv=swab      

Syntaxe

La syntaxe de dd est différente des autres commandes unix traditionnelles. dd utilise des options de la forme option=valeur au lieu du -option valeur.

les principales options de dd sont les suivantes :

  • if=fichier : lit ce fichier en entrée. Cela peut être un fichier régulier comme un périphérique de bloc. Par défaut, c'est l'entrée standard qui est utilisée
  • of=fichier : écrit ce fichier en sortie.
  • bs=taille (Block Size) : copie les données par bloc de taille octets.
  • count=nombre : ne copie que nombre blocs.
  • skip=nombre : ne copie qu'à partir du nombre-ième bloc du fichier d'entrée.
  • seek=nombre : ne commence à écrire que dans le nombre-ième bloc du fichier de sortie
  • conv=conversion : effectue une conversion. par exemple, ascii converti de l'EBCDIC en ASCII, et swab inverse les deux octets de chaque mot de 2 octets

GNU ddrescue

GNU ddrescue est une variante améliorée de la commande UNIX dd, maintenue par le projet GNU.

Page générée en 0.088 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise