La commande dd copie et convertit les fichiers pour leur permettre d'être transférés d'un type de support à un autre. La commande dd a plusieurs opérandes, ou actions, à effectuer.
Opérande | Utilisé pour |
---|---|
if={nom du fichier} | Spécifiez le fichier à partir duquel les données seront lues. |
of={nom du fichier} | Spécifiez le fichier dans lequel les données seront écrites. |
bs={octets} | Spécifiez la taille totale du bloc à lire et à écrire, en octets. Les octets peuvent également être formatés d'une manière plus conviviale, comme 50M pour spécifier 50 mégaoctets et 10G pour spécifier 10 gigaoctets. |
count={blocs} | Spécifiez le nombre de blocs à écrire dans le fichier de sortie à partir du fichier d'entrée. |
status={niveau} | Spécifiez le niveau d'informations à imprimer à l'erreur standard – aucun pour tout supprimer sauf les messages d'erreur, noxfer pour supprimer les statistiques de transfert total, progrès pour afficher périodiquement les statistiques de transfert. |
Syntaxe
La syntaxe de la commande dd est :
# dd [options] [operands]
Utiliser dd pour les sauvegardes
Vous pouvez utiliser dd pour effectuer une sauvegarde complète d'une partition de stockage. L'exemple suivant copie les données de /dev/sda1 vers /dev/sdb2 :
# dd if=/dev/sda of=/dev/sdb
À l'aide de dd, vous pouvez également créer une image d'un lecteur, puis cloner un second lecteur avec :
# dd if=/dev/sda of=drive_image.iso # dd if=drive_image.iso of=/dev/sdb
dd Exemples de commandes
1. Pour copier un fichier :
# dd if=old.txt of=old.txt
2. Pour lire et écrire des octets spécifiés d'un fichier à la fois :
# dd bs=1024 if=old.txt of=old.txt
3. Pour convertir un fichier dans un format spécifié :
# dd bs=1024 if=old.txt of=new.txt conv=ascii (from EBCDIC to ASCII) # dd bs=1024 if=old.txt of=new.txt conv=ebcdic (from ASCII to EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=ibm (from ASCII to alternate EBCDIC) # dd bs=1024 if=old.txt of=new.txt conv=block (pad oldline-terminated records with spaces to cbs-size) # dd bs=1024 if=old.txt of=new.txt conv=unblock (replace trailing spaces in cbs-size records with oldline) # dd bs=1024 if=old.txt of=new.txt conv=lcase (change upper case to lower case) # dd bs=1024 if=old.txt of=new.txt conv=excl (fail if the output old already exists) # dd bs=1024 if=old.txt of=new.txt conv=notrunc (do not truncate the output old) # dd bs=1024 if=old.txt of=new.txt conv=ucase (change lower case to upper case) # dd bs=1024 if=old.txt of=new.txt conv=swab (swap every pair of input bytes) # dd bs=1024 if=old.txt of=new.txt conv=noerror (continue after read errors) # dd bs=1024 if=old.txt of=new.txt conv=sync (pad every input block with NULs to ibs-size) # dd bs=1024 if=old.txt of=new.txt conv=fdatasync (physically write output old data before finishing) # dd bs=1024 if=old.txt of=new.txt conv=fsync (likewise, but also write metadata)
4. Pour copier uniquement le nombre spécifié de blocs :
# dd count=1024 if=old.txt of=new.txt
5. Pour copier un fichier en spécifiant un drapeau :
# dd if=old.txt of=new.txt oflag=append # dd if=old.txt iflag=directory of=new.txt oflag=directory # dd if=old.txt iflag=noatime of=new.txt oflag=append
6. Pour convertir des octets spécifiés à la fois :
# dd cbs=1024 if=old.txt of=new.txt
7. Pour lire un nombre spécifié d'octets à la fois :
# dd ibs=1024 if=old.txt of=new.txt
8. Pour écrire un nombre spécifié d'octets à la fois :
# dd obs=1024 if=old.txt of=new.txt
9. Pour ignorer le nombre spécifié de blocs au début de l'o/p :
# dd seek=1024 if=old.txt of=new.txt
10. Pour ignorer le nombre spécifié de blocs au début de i/p :
# dd skip=1024 if=old.txt of=new.txt
11. Pour supprimer les statistiques de transfert :
# dd status=noxfer if=old.txt of=new.txt
12. Pour effacer la table de partition d'un périphérique :
# dd if=/dev/zero of=/dev/sda4 bs=512 count=1