dd (Unix)

dd (Unix)

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. Il est particulièrement adapté à la copie sur des périphériques blocs tel que des disques durs ou des lecteurs CD-ROM.

Sommaire

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.ou ddtank

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.

Syntaxe

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

Les principales options de dd sont les suivantes :

  • if=fichier_entree (Input File) : lit ce fichier en entrée. Cela peut être un fichier régulier comme 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 de t_b octets.
  • count=n_b : ne copie que n_b blocs.
  • skip=n_e : ignore les n_e premiers blocs du fichier d'entrée[1] (Ne copie le fichier d'entrée qu'à partir du bloc de rang n_e+1.)
  • seek=n_s : ignore les n_s premiers blocs du fichier de sortie[1] (Ne commence à écrire dans le fichier de sortie qu'à partir du bloc de rang n_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 conversion(s) des types t_c1, t_c2, etc.
    • Par exemple, ascii converti de l'EBCDIC en ASCII.
    • ebcdic : ASCII vers EBCDIC.
    • ibm : EBCDIC vers ASCII avec les règles IBM.
    • swab : inverse les deux octets de chaque mot de 2 octets.
    • lcase : convertit en minuscules.
    • ucase : convertit en majuscules.
    • sync : complète les blocs d'entrée avec des zéros pour obtenir des blocs de ibs octets.
    • noerror : continue même s'il y a des erreurs.
  • -help : message d'aide.

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.

Pour faire une image de sauvegarde d'un CD ou d'un DVD :

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

Pour formater une disquette à partir d'une image :

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

Pour découper un fichier en tranche de 100 Mio ; pour cet usage, la commande split est cependant plus appropriée :

$> 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

Pour faire une copie de la table de partition du disque hda :

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

Pour détruire les données d'un disque dur hda en le remplissant de zéros (non-recommandé) ; voir aussi la commande shred :

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

Pour inverser (échanger) chaque paire d'octets du fichier nuxi et écrire la sortie dans le fichier unix :

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

GNU ddrescue

GNU ddrescue est une variante améliorée de la commande UNIX dd qui a la particularité de ne pas s'arrêter lorsqu'une lecture échoue, ce qui permet, entre autres, la récupération d'une partie d'un disque endommagé. Cette version est entretenue par le projet GNU[2].

Notes et références

  1. a et b Linux en concentré Manuel de référence, Ellen Siever, Stephen Figgins & Aaron Weber, éditions O'Reilly ; 4ème édition en français.
  2. (en) GNU ddrescue 1.14 a été réalisé le 12 janvier 2011.



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article dd (Unix) de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Unix — (officially trademarked as UNIX, sometimes also written as Unix with small caps) is a computer operating system originally developed in 1969 by a group of AT T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Douglas McIlroy, and… …   Wikipedia

  • UNIX — Ken Thompson und Dennis Ritchie Basisdaten Entwickler …   Deutsch Wikipedia

  • Unix — Kommandozeile (Unix Prompt) Basisdaten Entwickler Ken Thompso …   Deutsch Wikipedia

  • Unix — (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT T, entre los que figuran Ken Thompson, Dennis Ritchie y …   Wikipedia Español

  • UNIX — UNIX, parfois écrit « Unix », avec des petites capitales, est un système d exploitation multitâche et multi utilisateur créé en 1969, conceptuellement ouvert et fondé sur une approche par laquelle il offre de nombreux petits outils… …   Wikipédia en Français

  • Unix — (marque déposée officiellement comme UNIX, parfois aussi écrit comme Unix avec les petites capitalisations) est le nom d un système d exploitation multitâche et multi utilisateur créé en 1969, conceptuellement ouvert et fondé sur une approche par …   Wikipédia en Français

  • Unix time — Unix time, or POSIX time, is a system for describing points in time, defined as the number of seconds elapsed since midnight Coordinated Universal Time (UTC) of January 1 1970, not counting leap seconds. It is widely used not only on Unix like… …   Wikipedia

  • Unix-подобная операционная система — Генеалогическое дерево UNIX подобных ОС UNIX подобная операционная система (иногда сокр. *nix)  система, которая образовалась под влиянием UNIX. Термин включает свободные/открытые операционные системы, образованные от UNIX компании …   Википедия

  • UNIX — 〈[ju:nıx] EDV〉 Betriebssystem für Computer, das zum großen Teil in der Programmiersprache C geschrieben ist [engl.] * * * UNIX   [ursprünglich UNICS, Abk. für Uniplexed Information and Computing System, dt. »nicht multiplextes (vielseitiges)… …   Universal-Lexikon

  • UNIX-Kommandos — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

  • Unix-Befehle — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”