Options avancées de la commande dd
Au-delà des paramètres de base, la commande dd
propose plusieurs options avancées qui offrent un contrôle supplémentaire sur le processus de copie. Explorons quelques-unes des plus utiles :
L'option status
L'option status=
contrôle la manière dont dd
affiche sa progression. Cela est particulièrement utile lors de la copie de gros fichiers.
- Créons un autre fichier d'exemple :
for i in {1..20}; do echo "Line $i: The dd command provides detailed status information." >> ~/project/status_example.txt; done
- Utilisons
dd
avec l'option status=progress
:
dd if=~/project/status_example.txt of=~/project/status_copy.txt bs=1k status=progress
Avec l'option status=progress
, dd
affichera des informations de progression en temps réel pendant l'opération de copie.
L'option status
prend en charge plusieurs valeurs :
none
: N'affiche aucune information
noxfer
: Affiche tout sauf les statistiques de transfert
progress
: Affiche périodiquement les statistiques de transfert
Les options skip et seek
Les options skip=
et seek=
vous permettent de sauter des blocs respectivement dans les fichiers d'entrée et de sortie, ce qui est utile pour cibler des sections spécifiques de fichiers.
- Utilisons
skip
pour commencer la copie au milieu de notre fichier de test :
dd if=~/project/block_test.txt of=~/project/skipped_copy.txt bs=10 skip=10
L'option skip=10
indique à dd
de sauter les 10 premiers blocs (de 10 octets chacun) du fichier d'entrée avant de commencer la copie.
- Vérifions le résultat :
cat ~/project/skipped_copy.txt
Vous devriez constater que le début du fichier a été sauté.
- Maintenant, utilisons l'option
seek
pour laisser de l'espace au début du fichier de sortie :
dd if=~/project/block_test.txt of=~/project/seek_example.txt bs=10 seek=5
L'option seek=5
indique à dd
de sauter 5 blocs au début du fichier de sortie avant d'écrire des données.
- Examinons le fichier de sortie :
hexdump -C ~/project/seek_example.txt | head
Cela vous montrera que le fichier commence par 50 octets de zéros (5 blocs de 10 octets) avant le début des données réelles.
Les options iflag et oflag
Les options iflag=
et oflag=
contrôlent le traitement spécial des fichiers d'entrée et de sortie :
dd if=~/project/block_test.txt of=~/project/direct_copy.txt bs=4k iflag=direct,fullblock
Les indicateurs (flags) courants incluent :
direct
: Utilise l'E/S directe pour les données
dsync
: Utilise l'E/S synchronisée pour les données
sync
: Utilise l'E/S synchronisée pour les données et les métadonnées
nonblock
: Utilise l'E/S non bloquante
fullblock
: Accumule des blocs complets d'entrée
Ces options avancées font de dd
un outil polyvalent pour diverses tâches système, y compris la création de sauvegardes, le clonage de disques et la récupération de données.