Commande dd
Objectif
Convertit et copie un fichier.
Syntaxe
dd [ bs=Taille du bloc ][cbs=Taille du bloc ]
[conv= [ ascii |block|ebcdic | ibm | unblock ]
InputBlocks ] [ fichiers=Fichiers d'entrée ] [fskip=
SkipEOFs ] [ ibs=Taille du bloc d'entrée ] [si=
InFile ] [ obs=Taille du bloc de sortie ] [de=
OutFile ] [ chercher=Numéro d'enregistrement ] [sauter=
SkipInputBlocks ][ span=oui|non ]
dd [ Option=Valeur ]
Descriptif
Lorsque des tailles sont spécifiées, un nombre d'octets est attendu. Un nombre se terminant par w, bou k indique une multiplication par 2, 512 ou 1024 respectivement ; une paire de nombres séparés par un x ou un * (astérisque) indique un produit. Le paramètre count attend le nombre de blocs, pas le nombre d'octets, à copier.
Les mappages de jeu de caractères associés aux indicateurs conv=ascii et conv=ebcdic sont des opérations complémentaires. Ces indicateurs sont mappés entre les caractères ASCII et le sous-ensemble de caractères EBCDIC trouvés sur la plupart des postes de travail et des blocs de touches.
Utilisez la valeur du paramètre cbs si vous spécifiez l'une des conversions block, unblock, ascii, ebcdicou ibm . Si les paramètres unblock ou ascii sont spécifiés, la commande dd effectue une conversion de longueur fixe en longueur variable. Sinon, il effectue une conversion de longueur variable en longueur fixe. Le paramètre cbs détermine la longueur fixe.
Une fois qu'elle est terminée, la commande dd indique le nombre de blocs d'entrée et de sortie entiers et partiels.
- En règle générale, vous n'avez besoin que d'un accès en écriture au fichier de sortie. Toutefois, lorsque le fichier de sortie ne se trouve pas sur une unité à accès direct et que vous utilisez l'indicateur seek , vous devez également disposer d'un accès en lecture au fichier.
- La commande dd insère des caractères de nouvelle ligne uniquement lors de la conversion avec l'ensemble d'indicateurs conv=ascii ou conv=unblock ; elle remplit uniquement lors de la conversion avec l'ensemble d'indicateurs conv=ebcdic, conv=ibmou conv=block .
- Utilisez la commande backup, tarou cpio à la place de la commande dd pour copier des fichiers sur bande. Ces commandes sont conçues pour être utilisées avec des unités de bande. Pour plus d'informations sur l'utilisation des unités de bande, voir le fichier spécial rmt .
- Les valeurs de taille de bloc spécifiées avec les indicateurs bs, ibs et obs doivent toujours être un multiple de la taille de bloc physique pour le support utilisé.
- Lorsque l'indicateur conv=sync est spécifié, la commande dd remplit tous les blocs d'entrée partiels avec des valeurs nulles. Ainsi, la commande dd insère des valeurs nulles au milieu du flux de données si l'une des lectures ne reçoit pas de bloc de données complet (comme spécifié par l'indicateur ibs ). Il s'agit d'une occurrence courante lors de la lecture à partir de tubes.
- Si l'indicateur bs est spécifié par lui-même et qu'aucune conversion autre que sync, noerror ou notrunc n'est spécifiée, les données de chaque bloc d'entrée seront écrites en tant que bloc de sortie distinct ; si la lecture est inférieure à un bloc complet et que sync n'est pas spécifié, le bloc de sortie résultant aura la même taille que le bloc d'entrée. Si l'indicateur bs n'est pas spécifié ou qu'une conversion autre que sync, noerror ou notrunc est spécifiée, l'entrée est traitée et collectée en blocs de sortie de taille complète jusqu'à ce que la fin de l'entrée soit atteinte.
Couvrant tous les périphériques
L'extension de dd sur les périphériques ne se produit pas si l'un des paramètres InFile ou OutFile est stdin ou stdout.
La fonction Spanning se produit de telle sorte que dd vous invite à indiquer l'unité suivante lors de l'écriture si l'unité de sortie est saturée. Lors de la lecture à partir de l'unité d'entrée, dd vous invite à indiquer l'unité suivante si les données sont entièrement lues à partir de l'unité d'entrée, même si l'unité n'a pas atteint la fin. Dans ce cas, il serait nécessaire d'appuyer sur "n" pour quitter.
Indicateurs
| Article | Descriptif |
|---|---|
| bs=Taille du bloc | Indique à la fois la taille de bloc d'entrée et de sortie, en remplaçant les indicateurs ibs et obs . Les valeurs de taille de bloc spécifiées avec l'indicateur bs doivent toujours être un multiple de la taille de bloc physique pour le support utilisé. |
| cbs=Taille du bloc | Indique la taille de bloc de conversion pour les conversions de longueur variable en longueur fixe et de longueur fixe en longueur variable, telles que conv=block. |
| count=Blocsd'entrée | Copie uniquement le nombre de blocs d'entrée spécifié par la variable InputBlocks . |
| conv= Conversion,.... | Indique une ou plusieurs options de conversion. Les conversions multiples doivent être séparées par des virgules. La liste suivante décrit les options possibles:
|
| files=Fichiersd'entrée | Copie le nombre de fichiers spécifié par la valeur de variable InputFiles des fichiers d'entrée avant la fin (ce qui est logique uniquement lorsque l'entrée est une bande magnétique ou une unité similaire). |
| fskip= Ignorer les EOF | Ignore le nombre de caractères de fin de fichier spécifié par la variable SkipEOFs avant de commencer la copie ; cette variable SkipEOFs est utile pour le positionnement sur des bandes magnétiques multifichiers. |
| ibs=Taille du bloc d'entrée | Indique la taille du bloc d'entrée ; la valeur par défaut est 512 octets ou un bloc. Les valeurs de taille de bloc spécifiées avec l'indicateur ibs doivent toujours être un multiple de la taille de bloc physique pour le support utilisé. |
| si=InFile | Indique le nom du fichier d'entrée ; l'entrée standard est la valeur par défaut. |
| obs=Taille du bloc de sortie | Indique la taille du bloc de sortie ; la valeur par défaut est 512 octets ou un bloc. Les valeurs de taille de bloc spécifiées avec l'indicateur obs doivent toujours être un multiple de la taille de bloc physique pour le support utilisé. |
| de=OutFile | Indique le nom du fichier de sortie ; la sortie standard est la valeur par défaut. |
| chercher=Numéro d'enregistrement | Recherche l'enregistrement spécifié par la variable RecordNumber depuis le début du fichier de sortie avant la copie. |
| sauter=Sauter les blocs d'entrée | Sauter la valeur SkipInputBlocks spécifiée des blocs d'entrée avant de commencer la copie. |
| span=oui|non | Autorise la répartition entre les unités si elle est spécifiéeyeset fonctionne comme valeur par défaut si spécifié commeno. Pour plus d'informations, voir Spanning Across Devices. |
Statut de sortie
Cette commande renvoie les valeurs de sortie suivantes :
| Article | Descriptif |
|---|---|
| 0 % | Le fichier d'entrée a été copié. |
| >0 | Une erreur s'est produite. |
Exemples
- Pour convertir un fichier texte ASCII en EBCDIC, entrez:Cette commande convertit letext.asciifichier dans la représentation EBCDIC, stockage de la version EBCDIC dans latext.ebcdic.xlsx.Remarque: Lorsque vous spécifiez le paramètre conv=ebcdic , la commande dd convertit le caractère ASCII ^ (accent circonflexe) en un caractère EBCDIC non utilisé (9A hexadécimal) et le caractère ASCII ~ (tilde) en EBCDIC ^ (symbole NOT).
- Pour convertir le fichier ASCII d'enregistrement de longueur variable /etc/passwd en un fichier d'enregistrements EBCDIC de longueur fixe de 132 octets, entrez:
- Pour convertir le fichier EBCDIC de 132 octets par enregistrement en lignes ASCII de longueur variable en minuscules, entrez:
- Pour convertir le fichier ASCII d'enregistrement de longueur variable /etc/passwd en un fichier d'enregistrements de longueur fixe de 132 octets dans la version IBM de EBCDIC, entrez:
- Pour copier des blocs à partir d'une bande avec des blocs de 1KB sur une autre bande à l'aide de blocs de 2KB , entrez:
- Pour utiliser la commande dd comme filtre, entrez:ls -l | dd conv=ucaseCette commande affiche une longue liste du répertoire en cours en majuscules.Remarque: Les performances de la commande dd et de la commande cpio sur le modèle 12 de l'unité de bande magnétique 9348 peuvent être améliorées en modifiant la taille de bloc par défaut. Pour modifier la taille de bloc, utilisez la commande chdev de la manière suivante:
chdev -l Device_name -a block_size=32k - Pour effectuer des transferts efficaces vers la disquette 3.5-inch 1.4MB à l'aide de 36 blocs de 512 octets, entrez:
Cette commande écrit la valeur du paramètre Nom de fichier sur l'unité de disquette, un cylindre à la fois. :NONE.conv=syncest obligatoire lors de la lecture à partir du disque et lorsque la taille du fichier n'est pas un multiple de la taille de bloc de la disquette. N'essayez pas cela si l'entrée de la commande dd est un canal de communication au lieu d'un fichier, elle va remplir la majeure partie de l'entrée avec des valeurs nulles au lieu du seul dernier bloc.
- Pour copier des blocs d'un fichier d'entrée dont la taille de bloc est définie sur 720b blocs dans un type de disquette 1.44MB :dd if=testfile of=/dev/fd0 bs=720b conv=syncRemarque: Si le fichier d'entrée est supérieur à la taille physique du périphérique de sortie, jj vous invite à indiquer un autre périphérique.
- Pour copier des blocs d'un fichier d'entrée dont la taille de bloc est définie sur 32k blocs vers un type de bande:dd if=inputfile of=/dev/rmt0 bs=32k conv=sync
- Pour copier des blocs de données de la bande dans un fichier du répertoire en cours avec une taille de bloc définie sur 32k blocs, procédez comme suit:dd if=/dev/rmt0 of=outfile bs=32k conv=sync
- Pour copier des blocs à partir d'un fichier d'entrée avec une taille de bloc définie sur 720b, sur une disquette de taille 1.44MB , entrez:
dd if=testfile of=/dev/fd0 bs=720b conv=sync span=yesRemarque: Si le fichier d'entrée est supérieur à la taille physique du périphérique de sortie, dd vous invite à indiquer un autre périphérique. - Pour copier des blocs d'un fichier d'entrée dont la taille de bloc est définie sur 32ksur une bande, entrez:
dd if=inputfile of=/dev/rmt0 bs=32k conv=sync span=yes - Pour copier des blocs de données à partir d'une bande avec une taille de bloc définie sur 32k, dans un fichier du répertoire en cours, entrez:
dd if=dev/rmt0 of=outfile bs=32k conv=sync span=yes
Fichiers
| Article | Descriptif |
|---|---|
| /usr/bin/dd | Contient la commande dd . |