Pour les articles homonymes, voirDD.
dd est unecommande unix permettant de copier un fichier – avec ou sans conversion(s) au passage – en ne sélectionnant qu'une partie de données à copier. Il est particulièrement adapté à la copie sur des périphériquesblocs tels que des disquettes, desdisques durs ou deslecteurs CD-ROM.
Plusieurs théories existent pour justifier le nom de cette commande.
L'une dit que l'on voulait nommer cette commandecc pour« Copy and Convert », mais ce nom de commande étant déjà utilisée par le compilateur C, on a utilisé la lettre suivante de l'alphabet.
Selon le manuel d'utilisation de certaines distributions Unix, ce serait l'acronyme de« data dump » ou ddtank.
Sa syntaxe est inspirée de l'instruction DD du JCL du systèmeOS/360 d'IBM.Dennis Ritchie, l'un des deux créateurs d'Unix, a confirmé que là a toujours été l'explication du nom de la commande[1].
Lerétroacronyme satirique« Data Destroyer » (destructeur de données) lui est parfois attribué, car une simple erreur de manipulation de cette commande sur un disque dur peut détruire irrémédiablement les données sans aucun avertissement.
La syntaxe dedd est différente des autrescommandes Unix traditionnelles :dd utilise des options de la formeoption=valeur au lieu des habituelles-o valeur ou--option=valeur.
Les principales options dedd sont les suivantes :
if=fichier_entree (Input File) : lit ce fichier en entrée. Cela peut être aussi bien un fichier régulier qu'un périphérique de type bloc. Par défaut, c'est l'entrée standard qui est utilisée (par exemple le clavier) ;of=fichier_sortie (Output File) : écrit dans ce fichier en sortie ;bs=t_b (Block Size) : copie les données par blocs det_b octets ;count=n_b : ne copie quen_b blocs ;skip=n_e : ignore lesn_e premiers blocs du fichier d'entrée[2] (ne copie le fichier d'entrée qu'à partir du bloc de rangn_e + 1) ;seek=n_s : ignore lesn_s premiers blocs du fichier de sortie[2] (ne commence à écrire dans le fichier de sortie qu'à partir du bloc de rangn_s + 1) ;ibs=n_o : fixe la taille des blocs d'entrée àn_o octets. Par défaut 512 octets ;conv=t_c1,t_c2 : effectue une ou plusieurs conversions des typest_c1,t_c2, etc. :ascii convertit de l'EBCDIC (codageIBM) enASCII,ebcdic :ASCII versEBCDIC,ibm :EBCDIC versASCII avec les règles IBM,swab : inverse les deux octets de chaque mot de 2 octets (swap bytes),lcase : convertit en minuscules,ucase : convertit en majuscules,sync : complète les blocs d'entrée avec des zéros pour obtenir des blocs deibs octets,noerror : continue même s'il y a des erreurs ;--help : message d'aide.Contrairement à des commandes commecp, qui copient un fichier de façon « naïve » (lecture d'une partie du fichier sur un premier périphérique, puis copie sur le second, ce qui n'utilise pas la simultanéité et ralentit donc les opérations d'un facteur 2 environ),dd lance deuxtâchesasynchrones, d'une part de lecture et d'autre part d'écriture, assurant ainsi des copies environ deux fois plus rapides du fait de la simultanéité d'opération des deux périphériques concernés. Ce procédé ne fut introduit dansWindows qu'avec saversion 8 (2012).
GNU ddrescue est une alternative développée indépendamment de la commande UNIXdd, qui ne s'arrête pas lorsqu'une lecture échoue afin, entre autres, de récupérer une partie d’un disque endommagé. Cette version est maintenue par leprojet GNU[3]. Ddrescue recommande par ailleurslzip (en) pour lacompression dessauvegardes en raison de ses capacités derécupération de données, notamment lorsqu’il s’agit defusionner plusieurs copies de sauvegarde. La combinaisonddrescue/lziprecover apparait également être la meilleure option pour la récupération des données à partir de plusieurs sources.
| Aide | ||
|---|---|---|
| Environnementutilisateur | ||
| Gestion deprocessus | ||
| Manipulation detexte | ||
| Programmationshell | ||
| Recherche | ||
| Réseau | ||
| Système de fichiers | ||
| Divers | ||