Les commandes gzip/gunzip, bzip2/bunzip2 compressent/décompressent chaque fichier passé en argument sur la ligne de commande. La commande bzip2 possède un meilleur taux de compression. Ces commandes se trouvent en standard sur les systèmes Linux et peuvent s'installer sur les systèmes UNIX si elles ne sont pas déjà présentes. La commande gzip produit l'extension .gz et la commande bzip2 produit l'extension .bz2.
Syntaxe de gzip
Compression :
gzip [options] [fichiers ...]
Décompression :
gunzip [options] [fichiers ...]
zcat [options] [fichiers ...]
Principales options :
-c : Envoie le résultat sur la sortie standard. La commande gunzip -c est équivalente à la commande zcat.
-t : Tester la validité de l'archive.
Si le nom de fichier est omis, les données à traiter sont lues sur l'entrée standard.
Exemple
Compression du fichier mon_fichier4. L'original est remplacé par le fichier compressé.
$ ls -lh mon_fichier4
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
$ gzip mon_fichier4
$ ls -lh mon_fichier4.gz
-rw-r--r-- 1 root root 2,1M 25 mai 16:36 mon_fichier4.gz
$
Décompression. Le fichier d'origine est restitué et remplace le fichier compressé.
$ gunzip mon_fichier4.gz
$ ls -lh mon_fichier4*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
$
Compression du fichier avec envoi du flux sur la sortie standard. Cette méthode permet de conserver le fichier d'origine.
$ gzip -c mon_fichier4 > mon_fichier4.gz
$ ls -lh mon_fichier4*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
$
Décompressé en conservant le fichier compressé.
$ gunzip -c mon_fichier4.gz > mon_fichier5
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
$
Idem mais avec la commande zcat.
$ zcat mon_fichier4.gz > mon_fichier6
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6,6M 25 mai 16:46 mon_fichier6
$
Les commandes bzip2, bunzip2 et bzcat fonctionnent de manière similaire avec une légère différence au niveau des options.
Syntaxe de bzip2
Compression :
bzip2 [options] [fichiers ...]
Décompression :
bunzip2 [fichiers ...]
bzip2 -d [options] [fichiers ...]
bzcat [options] [fichiers ...]
Principales options :
-c : Envoie le résultat sur la sortie standard. La commande bzip2 -dc est équivalente à la commande bzcat.
-d : Décompression
-t : Tester la validité de l'archive.
Exemple
Compression du fichier mon_fichier4. La compression avec bzip2 est meilleure qu'avec gzip.
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6,6M 25 mai 16:46 mon_fichier6
$ bzip2 -c mon_fichier4 > mon_fichier4.bz2
$ ls -lh mon_fichier*
-rw-r--r-- 1 root root 6,6M 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 1,2M 25 mai 16:54 mon_fichier4.bz2
-rw-r--r-- 1 root root 2,1M 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6,6M 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6,6M 25 mai 16:46 mon_fichier6
$
Analyse des différentes compressions
$ wc -c mon_fichier4
6903921 mon_fichier4
$ wc -m mon_fichier4
6903921 mon_fichier4
$ ls -l mon_fichier*
-rw-r--r-- 1 root root 6903921 25 mai 16:36 mon_fichier4
-rw-r--r-- 1 root root 1207370 25 mai 16:54 mon_fichier4.bz2
-rw-r--r-- 1 root root 2129319 25 mai 16:42 mon_fichier4.gz
-rw-r--r-- 1 root root 6903921 25 mai 16:44 mon_fichier5
-rw-r--r-- 1 root root 6903921 25 mai 16:46 mon_fichier6
$
Test réalisé avec un fichier contenant uniquement des caractères.
Le fichier mon_fichier4 contient 6 903 921 caractères et par conséquent une taille de 6 903 921 octets.
Compression avec gzip : Le fichier a été réduit à une taille de 2 129 319 octets. Ce qui représente une diminution de 69,16 %
Compression avec bzip2 : Le fichier a été réduit à une taille de 1 207 370 octets. Ce qui représente une diminution de 82,51%
La commande tar permet de créer une archive à partir d'un ou plusieurs fichiers. Si le fichier est un répertoire, il sera archivé avec sa sous-arborescence.
Syntaxe
Création d'une archive :
tar -c [-zv] -f archive fichiers_a_archiver ...
Vérification d'une archive :
tar -t [-zv] -f archive [fichiers_a_verifier ...]
Extraction d'une archive :
tar -x [-zv] -f archive [fichiers_a_extraire ...]
Principales options :
-c : Création d'une archive
-t : Vérification d'une archive
-x : Extraction d'une archive
-f archive.tar : Nom de l'archive à créer, vérifier ou extraire
-f - : Dans le cas d'une création, le contenu de l'archive est envoyé sur la sortie standard. En extraction et vérification, le contenu de l'archive est attendu sur l'entrée standard
-v : Mode verbeux
-z : Sous Linux uniquement : permet de gérer en plus la compression avec gzip
-j : Compression avec bzip2
Exemples
Archivage et compression du dossier dossier_a_sauvegarder. La commande tar envoi le contenu de l'archive à la commande gzip via un pipe et qui compresse l'archive dans un fichier dossier_a_sauvegarder.tar.gz
$ ls -R dossier_a_sauvegarder
dossier_a_sauvegarder:
aZerty Bonjour Coucou help history last monscript pays2011.txt.1 piwik1 piwik2 result ronan ronan2 ronan3 search test
$ tar -cvf - dossier_a_sauvegarder | gzip -c > dossier_a_sauvegarder.tar.gz
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$ ls -l dossier_a_sauvegarder.tar.gz
-rw-r--r-- 1 root root 369562 25 mai 17:30 dossier_a_sauvegarder.tar.gz
$
Décompression et extraction. La commande gunzip décompresse le fichier et envoie le résultat à la commande tar qui extrait tout le contenu de l'archive.
$ gunzip -c dossier_a_sauvegarder.tar.gz | tar -xvf -
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Lister le contenu d'une archive
$ gunzip -c dossier_a_sauvegarder.tar.gz | tar -tf -
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Archivage et compression en utilisant l'option -z
$ tar -cvzf monArchive.tar.gz dossier_a_sauvegarder
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Idem pour lister le contenu de l'archive. En fait, l'option -z n'est pas obligatoire. Que l'archive soit compressée ou pas les options -tf suffisent.
$ tar -tf monArchive.tar.gz
dossier_a_sauvegarder/
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$
Ajouter un fichier à une archive existante en 3 étapes.
1 - Décompression (un fichier ne peut être ajouté à une archive compressée
$ gunzip monArchive.tar.gz
2 - Ajout du fichier xam à l'archive
$ tar -rf monArchive.tar xam
3 - Compression de l'archive
$ gzip monArchive.tar
Vérifier les différences entre le contenu de l'archive tar et les fichiers sources. Mettre à jour si nécessaire.
1 - Décompression de l'archive
$ gunzip monArchive.tar.gz
2 - Comparaison de l'archive avec les fichiers sources et affichage des différences existantes
$ tar -df monArchive.tar
dossier_a_sauvegarder/aZerty: La date de modification est différente.
dossier_a_sauvegarder/aZerty: La taille est différente.
$
3 - Suppresion du fichier ou des fichiers ayant des différences
$ tar --delete -f monArchive.tar dossier_a_sauvegarder/aZerty
4 - Mise à jour des fichiers en cas de différences trouvées.
$ tar -uf monArchive.tar dossier_a_sauvegarder
5 - Compression de l'archive
$ gzip monArchive.tar
La commande cpio permet également de faire des archives. Contrairement à la commande tar, elle n'est pas récursive. Tous les noms de fichiers entrant dans la composition de l'archive doivent être lus sur l'entrée standard. L'archive est envoyée sur la sortie standard. La commande est presque toujours utilisée derrière un tube lui-même précédé de la commande find qui permet de générer les noms de fichiers souhaités.
En vérification et restauration, l'archive à traiter est attendue sur l'entrée standard.
Syntaxe
Création d'une archive :
find . | cpio -o [-cv] > archive
Vérification d'une archive :
cpio -it [-cv] < archive [fichiers_a_verifier ...]
Extraction d'une archive :
cpio -i [-cdv] < archive [fichiers_a_extraire ...]
Principales options :
-c : Création/vérification/extraction d'une archive ayant un format d'en-tête d'archive portable entre les systèmes UNIX
-d : Extraction avec création des répertoires s'ils n'existent pas
-i : Extraction d'une archive
-it : Vérification d'une archive
-o : Création d'une archive
-v : Mode verbeux
Exemples
Archivage du dossier dossier_a_sauvegarder
$ find dossier_a_sauvegarder
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$ find dossier_a_sauvegarder | cpio -ocv > monArchive.cpio
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
6674 blocs
$
Vérification de l'archive
$ cpio -icvt < monArchive.cpio
drwxr-xr-x 2 root root 0 Apr 17 13:15 dossier_a_sauvegarder
-rw-r--r-- 1 root root 281 Apr 17 08:46 dossier_a_sauvegarder/ronan2
-rw-r--r-- 1 root root 3171822 Apr 17 08:46 dossier_a_sauvegarder/last
-rw-r--r-- 1 root root 195732 Apr 17 08:46 dossier_a_sauvegarder/search
-rw-r--r-- 1 root root 622 Apr 17 08:46 dossier_a_sauvegarder/piwik2
-rw-r--r-- 1 root root 281 Apr 17 08:46 dossier_a_sauvegarder/ronan3
-rw-r--r-- 1 root root 116 Apr 17 08:46 dossier_a_sauvegarder/result
-rw-r--r-- 1 root root 3083 Apr 17 08:46 dossier_a_sauvegarder/help
-rw-r--r-- 1 root root 26000 Apr 17 08:46 dossier_a_sauvegarder/history
-rw-r--r-- 1 root root 7 Apr 17 08:46 dossier_a_sauvegarder/Coucou
-rw-r--r-- 1 root root 15667 Apr 17 08:46 dossier_a_sauvegarder/pays2011.txt.1
-rw-r--r-- 1 root root 10 Apr 17 08:46 dossier_a_sauvegarder/monscript
-rw------- 1 root root 281 Apr 17 08:46 dossier_a_sauvegarder/ronan
-rw-r--r-- 1 root root 387 Apr 17 08:46 dossier_a_sauvegarder/test
-rw-r--r-- 1 root root 0 Apr 17 08:46 dossier_a_sauvegarder/Bonjour
-rw-r--r-- 1 root root 622 Apr 17 08:46 dossier_a_sauvegarder/piwik1
-rw-r--r-- 1 root root 36 May 25 18:11 dossier_a_sauvegarder/aZerty
6674 blocs
$
Création d'une archive cpio compressée avec bzip2
$ find dossier_a_sauvegarder | cpio -ocv | bzip2 -c > monArchive.cpio.bz2
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
6674 blocs
$
Décompression et extraction de l'archive
$ mkdir tmp
$ cp monArchive.cpio.bz2 tmp
$ cd tmp
$ ll
total 276
drwxr-xr-x 2 root root 4096 26 mai 08:59 .
drwx------ 12 root root 4096 26 mai 08:58 ..
-rw-r--r-- 1 root root 266276 26 mai 08:59 monArchive.cpio.bz2
$ bzip2 -dc monArchive.cpio.bz2 | cpio -icvd
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
6674 blocs
$ ll
total 280
drwxr-xr-x 3 root root 4096 26 mai 08:59 .
drwx------ 12 root root 4096 26 mai 08:58 ..
drwxr-xr-x 2 root root 4096 26 mai 08:59 dossier_a_sauvegarder
-rw-r--r-- 1 root root 266276 26 mai 08:59 monArchive.cpio.bz2
$ ll dossier_a_sauvegarder/
total 3396
drwxr-xr-x 2 root root 4096 26 mai 08:59 .
drwxr-xr-x 3 root root 4096 26 mai 08:59 ..
-rw-r--r-- 1 root root 36 26 mai 08:59 aZerty
-rw-r--r-- 1 root root 0 26 mai 08:59 Bonjour
-rw-r--r-- 1 root root 7 26 mai 08:59 Coucou
-rw-r--r-- 1 root root 3083 26 mai 08:59 help
-rw-r--r-- 1 root root 26000 26 mai 08:59 history
-rw-r--r-- 1 root root 3171822 26 mai 08:59 last
-rw-r--r-- 1 root root 10 26 mai 08:59 monscript
-rw-r--r-- 1 root root 15667 26 mai 08:59 pays2011.txt.1
-rw-r--r-- 1 root root 622 26 mai 08:59 piwik1
-rw-r--r-- 1 root root 622 26 mai 08:59 piwik2
-rw-r--r-- 1 root root 116 26 mai 08:59 result
-rw------- 1 root root 281 26 mai 08:59 ronan
-rw-r--r-- 1 root root 281 26 mai 08:59 ronan2
-rw-r--r-- 1 root root 281 26 mai 08:59 ronan3
-rw-r--r-- 1 root root 195732 26 mai 08:59 search
-rw-r--r-- 1 root root 387 26 mai 08:59 test
$
La commande dd réalise une copie physique d'un flux d'entrée vers un flux de sortie. Chaque octet souhaité du flux d'entrée est copié vers le flux de sortie, indépendamment de ce que représente la donnée.
Syntaxe
dd [if=fichier_entree] [of=fichier_sortie] [ibs=nboctets] [obs=nboctets] [bs=nboctets] [skip=nbblocs] [seek=nbblocs] [count=nbblocs]
Principales options :
if=fichier_entree : Fichier à traiter. Si aucun fichier n'est spécifié, l'entrée standard est traité.
of=fichier_sortie : Fichier de sortie. Si aucun fichier n'est spécifié, la sortie standard est utilisée.
ibs=nboctets : Traiter les données en entrée par blocs de nboctets octets (défaut : 512 octets).
obs=nboctets : Ecrire les données en sortie par blocs de nboctets octets (défaut : 512 octets).
bs=nboctets : Traiter les données d'entrée et de sortie par bloc de nboctets.
skip=nbblocs : Sauter nbblocs en entrée avant de commencer le traitement.
seek=nbblocs : En sortie, écrire à partir du bloc nbblocs.
count=nbblocs : Ecrire uniquement nbblocs de l'entrée vers la sortie.
Exemples
Copie du disque /dev/sda sur le disque /dev/sdb par blocs de 8ko
$ fdisk -l
Disque /dev/sda: 8589 Mo, 8589934592 octets
255 têtes, 63 secteurs/piste, 1044 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00040afc
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 1 994 7977984 83 Linux
La partition 1 ne se termine pas sur une frontière de cylindre.
/dev/sda2 994 1045 407553 5 Etendue
/dev/sda5 994 1045 407552 82 Linux swap / Solaris
Disque /dev/sdb: 8589 Mo, 8589934592 octets
255 têtes, 63 secteurs/piste, 1044 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00000000
Le disque /dev/sdb ne contient pas une table de partition valide
$ dd if=/dev/sda of=/dev/sdb bs=8k
1048576+0 enregistrements lus
1048576+0 enregistrements écrits
8589934592 octets (8,6 GB) copiés, 859,097 s, 10,0 MB/s
$
$ fdisk -l
Disque /dev/sda: 8589 Mo, 8589934592 octets
255 têtes, 63 secteurs/piste, 1044 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00040afc
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 * 1 994 7977984 83 Linux
La partition 1 ne se termine pas sur une frontière de cylindre.
/dev/sda2 994 1045 407553 5 Etendue
/dev/sda5 994 1045 407552 82 Linux swap / Solaris
Disque /dev/sdb: 8589 Mo, 8589934592 octets
255 têtes, 63 secteurs/piste, 1044 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00040afc
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdb1 * 1 994 7977984 83 Linux
La partition 1 ne se termine pas sur une frontière de cylindre.
/dev/sdb2 994 1045 407553 5 Etendue
/dev/sdb5 994 1045 407552 82 Linux swap / Solaris
Idem mais sur un disque sur une machine distante
$ dd if=/dev/sda | ssh 192.168.1.19 dd of=/dev/sdb bs=8k
Supprimer les 5 premiers octets du fichier fic1
$ cat fic1
ceci est un test
$ od -c fic1
0000000 c e c i e s t u n t e s t
0000020 \n
0000021
$ dd bs=1 skip=5 if=fic1 of=fic11
12+0 enregistrements lus
12+0 enregistrements écrits
12 octets (12 B) copiés, 0,00010661 s, 113 kB/s
$ cat fic11
est un test
$ od -c fic11
0000000 e s t u n t e s t \n
0000014
$
Retirer le dernier octet d'un fichier de 6 903 921 octets. La taille du bloc est fixée à 6 903 920 octets. Le nombre de blocs traités est de 1
$ ls -l mon_fichier4
-rw-r--r-- 1 root root 6903921 25 mai 16:36 mon_fichier4
$ dd if=mon_fichier4 of=mon_fichier41 bs=6903920 count=1
1+0 enregistrements lus
1+0 enregistrements écrits
6903920 octets (6,9 MB) copiés, 0,183292 s, 37,7 MB/s
$ ls -l mon_fichier41
-rw-r--r-- 1 root root 6903920 26 mai 11:21 mon_fichier41
$
La commande iconv permet de transformer l'encodage d'un flux de données, typiquement de l'encodage UTF8 vers ISO8859-15 et inversement.
Syntaxe
iconv options [fichiers_a_traiter]
Principales options :
-f encodage_entree : Encodage du fichier d'entrée
-t encodage_sortie : Encodage du fichier de sortie
Exemples
Conversion du fichier fic1 (UTF-8) vers fic2 (ISO8859-15)
$ cat fic1
systèmes
$ od -c fic1
0000000 s y s t 303 250 m e s \n
0000012
$ file fic1
fic1: UTF-8 Unicode text
$ iconv -f UTF8 -t ISO885915 fic1 > fic2
$ cat fic2
syst▒mes
$ od -c fic2
0000000 s y s t 350 m e s \n
0000011
$ file fic2
fic2: ISO-8859 text
$
Afficher la liste complète de tous les jeux des codes de caractères connus.
$ iconv -l
La liste suivante contient tous les jeux des codes de caractères connus. Ceci
ne signifie pas nécessairement que toutes les combinaisons de ces noms peuvent
être utilisées dans les paramètres « FROM » et « TO » des commandes. Un jeu de codes de
caractères peut être affiché avec différents noms (aliases).
437, 500, 500V1, 850, 851, 852, 855, 856, 857, 860, 861, 862, 863, 864, 865,
866, 866NAV, 869, 874, 904, 1026, 1046, 1047, 8859_1, 8859_2, 8859_3, 8859_4,
8859_5, 8859_6, 8859_7, 8859_8, 8859_9, 10646-1:1993, 10646-1:1993/UCS4,
ANSI_X3.4-1968, ANSI_X3.4-1986, ANSI_X3.4, ANSI_X3.110-1983, ANSI_X3.110,
ARABIC, ARABIC7, ARMSCII-8, ASCII, ASMO-708, ASMO_449, BALTIC, BIG-5,
BIG-FIVE, BIG5-HKSCS, BIG5, BIG5HKSCS, BIGFIVE, BRF, BS_4730, CA, CN-BIG5,
CN-GB, CN, CP-AR, CP-GR, CP-HU, CP037, CP038, CP273, CP274, CP275, CP278,
CP280, CP281, CP282, CP284, CP285, CP290, CP297, CP367, CP420, CP423, CP424,
CP437, CP500, CP737, CP775, CP803, CP813, CP819, CP850, CP851, CP852, CP855,
CP856, CP857, CP860, CP861, CP862, CP863, CP864, CP865, CP866, CP866NAV,
CP868, CP869, CP870, CP871, CP874, CP875, CP880, CP891, CP901, CP902, CP903,
CP904, CP905, CP912, CP915, CP916, CP918, CP920, CP921, CP922, CP930, CP932,
CP933, CP935, CP936, CP937, CP939, CP949, CP950, CP1004, CP1008, CP1025,
CP1026, CP1046, CP1047, CP1070, CP1079, CP1081, CP1084, CP1089, CP1097,
CP1112, CP1122, CP1123, CP1124, CP1125, CP1129, CP1130, CP1132, CP1133,
CP1137, CP1140, CP1141, CP1142, CP1143, CP1144, CP1145, CP1146, CP1147,
CP1148, CP1149, CP1153, CP1154, CP1155, CP1156, CP1157, CP1158, CP1160,
CP1161, CP1162, CP1163, CP1164, CP1166, CP1167, CP1250, CP1251, CP1252,
CP1253, CP1254, CP1255, CP1256, CP1257, CP1258, CP1282, CP1361, CP1364,
CP1371, CP1388, CP1390, CP1399, CP4517, CP4899, CP4909, CP4971, CP5347,
CP9030, CP9066, CP9448, CP10007, CP12712, CP16804, CPIBM861, CSA7-1, CSA7-2,
CSASCII, CSA_T500-1983, CSA_T500, CSA_Z243.4-1985-1, CSA_Z243.4-1985-2,
CSA_Z243.419851, CSA_Z243.419852, CSDECMCS, CSEBCDICATDE, CSEBCDICATDEA,
CSEBCDICCAFR, CSEBCDICDKNO, CSEBCDICDKNOA, CSEBCDICES, CSEBCDICESA,
CSEBCDICESS, CSEBCDICFISE, CSEBCDICFISEA, CSEBCDICFR, CSEBCDICIT, CSEBCDICPT,
CSEBCDICUK, CSEBCDICUS, CSEUCKR, CSEUCPKDFMTJAPANESE, CSGB2312, CSHPROMAN8,
CSIBM037, CSIBM038, CSIBM273, CSIBM274, CSIBM275, CSIBM277, CSIBM278,
CSIBM280, CSIBM281, CSIBM284, CSIBM285, CSIBM290, CSIBM297, CSIBM420,
CSIBM423, CSIBM424, CSIBM500, CSIBM803, CSIBM851, CSIBM855, CSIBM856,
CSIBM857, CSIBM860, CSIBM863, CSIBM864, CSIBM865, CSIBM866, CSIBM868,
CSIBM869, CSIBM870, CSIBM871, CSIBM880, CSIBM891, CSIBM901, CSIBM902,
CSIBM903, CSIBM904, CSIBM905, CSIBM918, CSIBM921, CSIBM922, CSIBM930,
CSIBM932, CSIBM933, CSIBM935, CSIBM937, CSIBM939, CSIBM943, CSIBM1008,
CSIBM1025, CSIBM1026, CSIBM1097, CSIBM1112, CSIBM1122, CSIBM1123, CSIBM1124,
CSIBM1129, CSIBM1130, CSIBM1132, CSIBM1133, CSIBM1137, CSIBM1140, CSIBM1141,
CSIBM1142, CSIBM1143, CSIBM1144, CSIBM1145, CSIBM1146, CSIBM1147, CSIBM1148,
CSIBM1149, CSIBM1153, CSIBM1154, CSIBM1155, CSIBM1156, CSIBM1157, CSIBM1158,
CSIBM1160, CSIBM1161, CSIBM1163, CSIBM1164, CSIBM1166, CSIBM1167, CSIBM1364,
CSIBM1371, CSIBM1388, CSIBM1390, CSIBM1399, CSIBM4517, CSIBM4899, CSIBM4909,
CSIBM4971, CSIBM5347, CSIBM9030, CSIBM9066, CSIBM9448, CSIBM12712,
CSIBM16804, CSIBM11621162, CSISO4UNITEDKINGDOM, CSISO10SWEDISH,
CSISO11SWEDISHFORNAMES, CSISO14JISC6220RO, CSISO15ITALIAN, CSISO16PORTUGESE,
CSISO17SPANISH, CSISO18GREEK7OLD, CSISO19LATINGREEK, CSISO21GERMAN,
CSISO25FRENCH, CSISO27LATINGREEK1, CSISO49INIS, CSISO50INIS8,
CSISO51INISCYRILLIC, CSISO58GB1988, CSISO60DANISHNORWEGIAN,
CSISO60NORWEGIAN1, CSISO61NORWEGIAN2, CSISO69FRENCH, CSISO84PORTUGUESE2,
CSISO85SPANISH2, CSISO86HUNGARIAN, CSISO88GREEK7, CSISO89ASMO449, CSISO90,
CSISO92JISC62991984B, CSISO99NAPLPS, CSISO103T618BIT, CSISO111ECMACYRILLIC,
CSISO121CANADIAN1, CSISO122CANADIAN2, CSISO139CSN369103, CSISO141JUSIB1002,
CSISO143IECP271, CSISO150, CSISO150GREEKCCITT, CSISO151CUBA,
CSISO153GOST1976874, CSISO646DANISH, CSISO2022CN, CSISO2022JP, CSISO2022JP2,
CSISO2022KR, CSISO2033, CSISO5427CYRILLIC, CSISO5427CYRILLIC1981,
CSISO5428GREEK, CSISO10367BOX, CSISOLATIN1, CSISOLATIN2, CSISOLATIN3,
CSISOLATIN4, CSISOLATIN5, CSISOLATIN6, CSISOLATINARABIC, CSISOLATINCYRILLIC,
CSISOLATINGREEK, CSISOLATINHEBREW, CSKOI8R, CSKSC5636, CSMACINTOSH,
CSNATSDANO, CSNATSSEFI, CSN_369103, CSPC8CODEPAGE437, CSPC775BALTIC,
CSPC850MULTILINGUAL, CSPC862LATINHEBREW, CSPCP852, CSSHIFTJIS, CSUCS4,
CSUNICODE, CSWINDOWS31J, CUBA, CWI-2, CWI, CYRILLIC, DE, DEC-MCS, DEC,
DECMCS, DIN_66003, DK, DS2089, DS_2089, E13B, EBCDIC-AT-DE-A, EBCDIC-AT-DE,
EBCDIC-BE, EBCDIC-BR, EBCDIC-CA-FR, EBCDIC-CP-AR1, EBCDIC-CP-AR2,
EBCDIC-CP-BE, EBCDIC-CP-CA, EBCDIC-CP-CH, EBCDIC-CP-DK, EBCDIC-CP-ES,
EBCDIC-CP-FI, EBCDIC-CP-FR, EBCDIC-CP-GB, EBCDIC-CP-GR, EBCDIC-CP-HE,
EBCDIC-CP-IS, EBCDIC-CP-IT, EBCDIC-CP-NL, EBCDIC-CP-NO, EBCDIC-CP-ROECE,
EBCDIC-CP-SE, EBCDIC-CP-TR, EBCDIC-CP-US, EBCDIC-CP-WT, EBCDIC-CP-YU,
EBCDIC-CYRILLIC, EBCDIC-DK-NO-A, EBCDIC-DK-NO, EBCDIC-ES-A, EBCDIC-ES-S,
EBCDIC-ES, EBCDIC-FI-SE-A, EBCDIC-FI-SE, EBCDIC-FR, EBCDIC-GREEK, EBCDIC-INT,
EBCDIC-INT1, EBCDIC-IS-FRISS, EBCDIC-IT, EBCDIC-JP-E, EBCDIC-JP-KANA,
EBCDIC-PT, EBCDIC-UK, EBCDIC-US, EBCDICATDE, EBCDICATDEA, EBCDICCAFR,
EBCDICDKNO, EBCDICDKNOA, EBCDICES, EBCDICESA, EBCDICESS, EBCDICFISE,
EBCDICFISEA, EBCDICFR, EBCDICISFRISS, EBCDICIT, EBCDICPT, EBCDICUK, EBCDICUS,
ECMA-114, ECMA-118, ECMA-128, ECMA-CYRILLIC, ECMACYRILLIC, ELOT_928, ES, ES2,
EUC-CN, EUC-JISX0213, EUC-JP-MS, EUC-JP, EUC-KR, EUC-TW, EUCCN, EUCJP-MS,
EUCJP-OPEN, EUCJP-WIN, EUCJP, EUCKR, EUCTW, FI, FR, GB, GB2312, GB13000,
GB18030, GBK, GB_1988-80, GB_198880, GEORGIAN-ACADEMY, GEORGIAN-PS,
GOST_19768-74, GOST_19768, GOST_1976874, GREEK-CCITT, GREEK, GREEK7-OLD,
GREEK7, GREEK7OLD, GREEK8, GREEKCCITT, HEBREW, HP-GREEK8, HP-ROMAN8,
HP-ROMAN9, HP-THAI8, HP-TURKISH8, HPGREEK8, HPROMAN8, HPROMAN9, HPTHAI8,
HPTURKISH8, HU, IBM-803, IBM-856, IBM-901, IBM-902, IBM-921, IBM-922,
IBM-930, IBM-932, IBM-933, IBM-935, IBM-937, IBM-939, IBM-943, IBM-1008,
IBM-1025, IBM-1046, IBM-1047, IBM-1097, IBM-1112, IBM-1122, IBM-1123,
IBM-1124, IBM-1129, IBM-1130, IBM-1132, IBM-1133, IBM-1137, IBM-1140,
IBM-1141, IBM-1142, IBM-1143, IBM-1144, IBM-1145, IBM-1146, IBM-1147,
IBM-1148, IBM-1149, IBM-1153, IBM-1154, IBM-1155, IBM-1156, IBM-1157,
IBM-1158, IBM-1160, IBM-1161, IBM-1162, IBM-1163, IBM-1164, IBM-1166,
IBM-1167, IBM-1364, IBM-1371, IBM-1388, IBM-1390, IBM-1399, IBM-4517,
IBM-4899, IBM-4909, IBM-4971, IBM-5347, IBM-9030, IBM-9066, IBM-9448,
IBM-12712, IBM-16804, IBM037, IBM038, IBM256, IBM273, IBM274, IBM275, IBM277,
IBM278, IBM280, IBM281, IBM284, IBM285, IBM290, IBM297, IBM367, IBM420,
IBM423, IBM424, IBM437, IBM500, IBM775, IBM803, IBM813, IBM819, IBM848,
IBM850, IBM851, IBM852, IBM855, IBM856, IBM857, IBM860, IBM861, IBM862,
IBM863, IBM864, IBM865, IBM866, IBM866NAV, IBM868, IBM869, IBM870, IBM871,
IBM874, IBM875, IBM880, IBM891, IBM901, IBM902, IBM903, IBM904, IBM905,
IBM912, IBM915, IBM916, IBM918, IBM920, IBM921, IBM922, IBM930, IBM932,
IBM933, IBM935, IBM937, IBM939, IBM943, IBM1004, IBM1008, IBM1025, IBM1026,
IBM1046, IBM1047, IBM1089, IBM1097, IBM1112, IBM1122, IBM1123, IBM1124,
IBM1129, IBM1130, IBM1132, IBM1133, IBM1137, IBM1140, IBM1141, IBM1142,
IBM1143, IBM1144, IBM1145, IBM1146, IBM1147, IBM1148, IBM1149, IBM1153,
IBM1154, IBM1155, IBM1156, IBM1157, IBM1158, IBM1160, IBM1161, IBM1162,
IBM1163, IBM1164, IBM1166, IBM1167, IBM1364, IBM1371, IBM1388, IBM1390,
IBM1399, IBM4517, IBM4899, IBM4909, IBM4971, IBM5347, IBM9030, IBM9066,
IBM9448, IBM12712, IBM16804, IEC_P27-1, IEC_P271, INIS-8, INIS-CYRILLIC,
INIS, INIS8, INISCYRILLIC, ISIRI-3342, ISIRI3342, ISO-2022-CN-EXT,
ISO-2022-CN, ISO-2022-JP-2, ISO-2022-JP-3, ISO-2022-JP, ISO-2022-KR,
ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6,
ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-9E, ISO-8859-10, ISO-8859-11,
ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16, ISO-10646,
ISO-10646/UCS2, ISO-10646/UCS4, ISO-10646/UTF-8, ISO-10646/UTF8, ISO-CELTIC,
ISO-IR-4, ISO-IR-6, ISO-IR-8-1, ISO-IR-9-1, ISO-IR-10, ISO-IR-11, ISO-IR-14,
ISO-IR-15, ISO-IR-16, ISO-IR-17, ISO-IR-18, ISO-IR-19, ISO-IR-21, ISO-IR-25,
ISO-IR-27, ISO-IR-37, ISO-IR-49, ISO-IR-50, ISO-IR-51, ISO-IR-54, ISO-IR-55,
ISO-IR-57, ISO-IR-60, ISO-IR-61, ISO-IR-69, ISO-IR-84, ISO-IR-85, ISO-IR-86,
ISO-IR-88, ISO-IR-89, ISO-IR-90, ISO-IR-92, ISO-IR-98, ISO-IR-99, ISO-IR-100,
ISO-IR-101, ISO-IR-103, ISO-IR-109, ISO-IR-110, ISO-IR-111, ISO-IR-121,
ISO-IR-122, ISO-IR-126, ISO-IR-127, ISO-IR-138, ISO-IR-139, ISO-IR-141,
ISO-IR-143, ISO-IR-144, ISO-IR-148, ISO-IR-150, ISO-IR-151, ISO-IR-153,
ISO-IR-155, ISO-IR-156, ISO-IR-157, ISO-IR-166, ISO-IR-179, ISO-IR-193,
ISO-IR-197, ISO-IR-199, ISO-IR-203, ISO-IR-209, ISO-IR-226, ISO/TR_11548-1,
ISO646-CA, ISO646-CA2, ISO646-CN, ISO646-CU, ISO646-DE, ISO646-DK, ISO646-ES,
ISO646-ES2, ISO646-FI, ISO646-FR, ISO646-FR1, ISO646-GB, ISO646-HU,
ISO646-IT, ISO646-JP-OCR-B, ISO646-JP, ISO646-KR, ISO646-NO, ISO646-NO2,
ISO646-PT, ISO646-PT2, ISO646-SE, ISO646-SE2, ISO646-US, ISO646-YU,
ISO2022CN, ISO2022CNEXT, ISO2022JP, ISO2022JP2, ISO2022KR, ISO6937,
ISO8859-1, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6, ISO8859-7,
ISO8859-8, ISO8859-9, ISO8859-9E, ISO8859-10, ISO8859-11, ISO8859-13,
ISO8859-14, ISO8859-15, ISO8859-16, ISO11548-1, ISO88591, ISO88592, ISO88593,
ISO88594, ISO88595, ISO88596, ISO88597, ISO88598, ISO88599, ISO88599E,
ISO885910, ISO885911, ISO885913, ISO885914, ISO885915, ISO885916,
ISO_646.IRV:1991, ISO_2033-1983, ISO_2033, ISO_5427-EXT, ISO_5427,
ISO_5427:1981, ISO_5427EXT, ISO_5428, ISO_5428:1980, ISO_6937-2,
ISO_6937-2:1983, ISO_6937, ISO_6937:1992, ISO_8859-1, ISO_8859-1:1987,
ISO_8859-2, ISO_8859-2:1987, ISO_8859-3, ISO_8859-3:1988, ISO_8859-4,
ISO_8859-4:1988, ISO_8859-5, ISO_8859-5:1988, ISO_8859-6, ISO_8859-6:1987,
ISO_8859-7, ISO_8859-7:1987, ISO_8859-7:2003, ISO_8859-8, ISO_8859-8:1988,
ISO_8859-9, ISO_8859-9:1989, ISO_8859-9E, ISO_8859-10, ISO_8859-10:1992,
ISO_8859-14, ISO_8859-14:1998, ISO_8859-15, ISO_8859-15:1998, ISO_8859-16,
ISO_8859-16:2001, ISO_9036, ISO_10367-BOX, ISO_10367BOX, ISO_11548-1,
ISO_69372, IT, JIS_C6220-1969-RO, JIS_C6229-1984-B, JIS_C62201969RO,
JIS_C62291984B, JOHAB, JP-OCR-B, JP, JS, JUS_I.B1.002, KOI-7, KOI-8, KOI8-R,
KOI8-RU, KOI8-T, KOI8-U, KOI8, KOI8R, KOI8U, KSC5636, L1, L2, L3, L4, L5, L6,
L7, L8, L10, LATIN-9, LATIN-GREEK-1, LATIN-GREEK, LATIN1, LATIN2, LATIN3,
LATIN4, LATIN5, LATIN6, LATIN7, LATIN8, LATIN9, LATIN10, LATINGREEK,
LATINGREEK1, MAC-CENTRALEUROPE, MAC-CYRILLIC, MAC-IS, MAC-SAMI, MAC-UK, MAC,
MACCYRILLIC, MACINTOSH, MACIS, MACUK, MACUKRAINIAN, MIK, MS-ANSI, MS-ARAB,
MS-CYRL, MS-EE, MS-GREEK, MS-HEBR, MS-MAC-CYRILLIC, MS-TURK, MS932, MS936,
MSCP949, MSCP1361, MSMACCYRILLIC, MSZ_7795.3, MS_KANJI, NAPLPS, NATS-DANO,
NATS-SEFI, NATSDANO, NATSSEFI, NC_NC0010, NC_NC00-10, NC_NC00-10:81,
NF_Z_62-010, NF_Z_62-010_(1973), NF_Z_62-010_1973, NF_Z_62010,
NF_Z_62010_1973, NO, NO2, NS_4551-1, NS_4551-2, NS_45511, NS_45512,
OS2LATIN1, OSF00010001, OSF00010002, OSF00010003, OSF00010004, OSF00010005,
OSF00010006, OSF00010007, OSF00010008, OSF00010009, OSF0001000A, OSF00010020,
OSF00010100, OSF00010101, OSF00010102, OSF00010104, OSF00010105, OSF00010106,
OSF00030010, OSF0004000A, OSF0005000A, OSF05010001, OSF100201A4, OSF100201A8,
OSF100201B5, OSF100201F4, OSF100203B5, OSF1002011C, OSF1002011D, OSF1002035D,
OSF1002035E, OSF1002035F, OSF1002036B, OSF1002037B, OSF10010001, OSF10010004,
OSF10010006, OSF10020025, OSF10020111, OSF10020115, OSF10020116, OSF10020118,
OSF10020122, OSF10020129, OSF10020352, OSF10020354, OSF10020357, OSF10020359,
OSF10020360, OSF10020364, OSF10020365, OSF10020366, OSF10020367, OSF10020370,
OSF10020387, OSF10020388, OSF10020396, OSF10020402, OSF10020417, PT, PT2,
PT154, R8, R9, RK1048, ROMAN8, ROMAN9, RUSCII, SE, SE2, SEN_850200_B,
SEN_850200_C, SHIFT-JIS, SHIFT_JIS, SHIFT_JISX0213, SJIS-OPEN, SJIS-WIN,
SJIS, SS636127, STRK1048-2002, ST_SEV_358-88, T.61-8BIT, T.61, T.618BIT,
TCVN-5712, TCVN, TCVN5712-1, TCVN5712-1:1993, THAI8, TIS-620, TIS620-0,
TIS620.2529-1, TIS620.2533-0, TIS620, TS-5881, TSCII, TURKISH8, UCS-2,
UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UCS2, UCS4, UHC, UJIS, UK,
UNICODE, UNICODEBIG, UNICODELITTLE, US-ASCII, US, UTF-7, UTF-8, UTF-16,
UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF7, UTF8, UTF16, UTF16BE,
UTF16LE, UTF32, UTF32BE, UTF32LE, VISCII, WCHAR_T, WIN-SAMI-2, WINBALTRIM,
WINDOWS-31J, WINDOWS-874, WINDOWS-936, WINDOWS-1250, WINDOWS-1251,
WINDOWS-1252, WINDOWS-1253, WINDOWS-1254, WINDOWS-1255, WINDOWS-1256,
WINDOWS-1257, WINDOWS-1258, WINSAMI2, WS2, YU
$