Formation Unix/Linux (4) Archivage et compression de fichiers

Transcription

Formation Unix/Linux (4) Archivage et compression de fichiers
Formation Unix/Linux (4)
Archivage et compression de fichiers
Olivier BOEBION
mars 2004
1
L’extension d’un fichier sous UNIX
La notion d’extension d’un fichier n’est pas aussi importante sous UNIX que sous d’autres
systèmes d’exploitation. Sous Unix, tous les fichiers ne sont pas identifiables par leur extension.
Cependant, l’utilisateur nomme généralement ses fichiers en respectant quelques règles (Par
exemple, un fichier source en langage C se termine par .c).
La commande file suivie d’un nom de fichier analyse le contenu de celui-ci et retourne le
type du fichier. Le tableau 1 vous présente quelques extensions couramment utilisées.
Extensions
.a .sl .so
.h
.c
.f
.ps
.eps
.html
.gif .jpg .bmp
.tar
.cpio
.gz
.Z
.C
.bz
Type des fichiers
librairies
fichiers header pour programmes C
fichiers sources en C
fichiers sources en Fortran
fichiers postscript
fichiers postcript encapsulés
fichiers hypertextes (WEB)
fichiers images
fichiers archives réalisés avec tar
fichiers archives réalisés avec cpio
fichiers compressés avec gzip
fichiers compressés avec compress
fichiers compressés avec compact ou fichier C++
fichiers compressés avec bzip2
Tab. 1 – Quelques extensions de fichier
1
2
L’archivage de fichiers
2.1
2.1.1
La commande tar
Description
tar (Tape ARchive) est une commande qui place une structure de répertoire sur une bande,
sur une disquette ou encore dans un simple fichier. Elle effectue des sauvegardes complètes mais
ne permet pas de sauvegardes incrémentielles (sauvegarde de fichiers modifiés depuis une date
antérieure).
tar a l’inconvénient de ne pas gérer les défauts du support magnétique et s’interrompt
lorsqu’il rencontre un endroit abı̂mé. Si vous choisissez cette commande pour sauvegarder une
arborescence, vous pouvez spécifier les noms de chemin d’une manière relative ou absolue.
2.1.2
Sauvegarde de fichiers avec tar
La commande tar possède de nombreuses options. Les plus utilisées sont -c (Création)et -v
(Visualisation). Si vous souhaitez sauvegarder votre répertoire dans un fichier, vous tapez en
vous plaçant dans votre Home Directory :
tar cvf /tmp/sauv.tar .
Pour une sauvegarde sur bande, vous utilisez le fichier spécial /dev/st0 qui correspond au
lecteur de bande sous Linux :
tar cvf /dev/st0 ./home
2.1.3
Restauration des fichiers avec tar
Vous pouvez visualiser le contenu de la sauvegarde en utilisant l’option -t de la manière
suivante :
tar tvf /tmp/sauv.tar
ou
tar tvf /dev/st0
Pour restaurer la totalité de votre sauvegarde, vous vous placez sous votre répertoire privé
et vous tapez :
tar xvf /tmp/sauv.tar
ou
tar xvf /dev/st0
Pour restaurer un fichier particulier dans une archive, vous spécifiez le nom de celui-ci :
tar xvf /tmp/sauv.tar ./tmp/liberty.c
ou
tar xvf /dev/st0 ./tmp/liberty.c
2
2.2
La commande cpio
2.2.1
Description
La commande cpio (CoPy Input et Output) possède de nombreux avantages par rapport à
la commande tar. Elle crée des fichiers plus portables et a la possibilité de :
–
–
–
–
générer des sauvegardes incrémentielles ;
gérer les endroits abı̂més du support magnétique ;
sauvegarder les fichiers spéciaux (/dev) ;
travailler à partir d’une liste de fichiers à sauvegarder.
Cette commande ne peut pas être utilisée seule. Son entrée standard est détachée. On doit
donc lui associer une commande qui génère la liste des fichiers à sauvegarder. Vous utiliserez,
par exemple ls ou plus généralement find. Ces commandes seront redirigées par un tube dans
l’entrée standard de cpio.
2.2.2
Sauvegarde de fichiers avec cpio
Si vous souhaitez sauvegarder votre répertoire privé sur un lecteur de disquette, vous utiliserez les options -o (Output), -v (Visualisation) et B (Buffer) :
cd
find . | cpio -oB > /dev/fd0
Si, au contraire, vous souhaitez sauvegarder votre compte sous un simple fichier, vous utiliserez les mêmes options en redirigeant vers le fichier souhaité :
cd
find . | cpio -oB > /tmp/sauv.cpio
Si, plus tard, vous souhaitez sauvegarder sur une autre disquette les fichiers modifiés depuis
moins de 3 jours, vous utiliserez les options de find :
find . -mtime -3 | cpio -oB > /dev/fd0
ou
find . -mtime -3 | cpio -oB > /tmp/sauv2.cpio
Vous pouvez aussi générer une sauvegarde incrémentielle. Pour cela, il vous faut utiliser un
fichier dont la date de création est celle de la dernière sauvegarde effectuée. Par exemple, si la
date de création du fichier ”∼/.datesauv” est le 01 mai 2001, vous pouvez sauvegarder tous
les fichiers modifiés ou ajoutés depuis cette date en tapant :
find . -newer ~/.datesauv | cpio -oB > /dev/fd0
ou
find . -newer ~/.datesauv | cpio -oB > /tmp/sauv2.cpio
N’oubliez pas, dans ce cas, de mettre ensuite à jour la date du fichier .datesauv (avec la
commande touch, par exemple).
3
2.2.3
Restauration de fichiers avec cpio
Pour obtenir la liste des fichiers sauvegardés sur un support, vous utiliserez les options -i
(Input), et -t (Table) :
cpio -itvB < /dev/fd0
ou
cpio -itvB < /tmp/sauv.cpio
Pour effectuer une restauration complète, vous taperez :
cpio -idvB < /dev/fd0
ou
cpio -idvB < /tmp/sauv.cpio
Si vous souhaitez restaurer un fichier particulier, vous utiliserez, comme pour tar, la syntaxe
suivante :
cpio -idvB .profile < /dev/fd0
ou
cpio -idvB .profile < /tmp/sauv.cpio
2.3
Autres outils
D’autres outils d’archivage ou de sauvegarde existent. Les commandes standards dump et
restore ainsi que des applications propriétaires (telles que Arkeia) sont par exemple dédiées à
la sauvegarde.
4
3
La compression de fichiers
Un système UNIX possède en standard plusieurs outils de compression de données tels que
compress ou compact. Issu du domaine publique, l’outil gzip est actuellement le plus utilisé.
Le dernier venu est bzip2 et offre les meilleurs taux de compression.
3.1
La commande compress
La commande compress réduit les fichiers passés en paramètre suivant l’algorithme de
codage de Lempel-Ziv. L’extension du fichier généré est .Z. L’option v permet de montrer le
taux de compression obtenu. La syntaxe est la suivante :
compress -v bob.tar
Les commandes compress et uncompress permettent de décompresser des fichiers :
compress -dv bob.tar.Z
ou
uncompress -v bob.tar.Z
Afficher le contenu d’un fichier compressé sans avoir à le restaurer est possible avec la commande zcat :
zcat bob.tar.Z
3.2
La commande gzip
Issu du domaine public, gzip reprend l’algorithme de codage de Lempel Ziv. L’option -help
utilisée seule, permet d’obtenir les différentes options utilisables. L’option -v affiche le taux de
compression obtenu pour chacun des fichiers passés en paramètre. L’extension du fichier obtenue
est .gz :
gzip -v bob.tar
La décompression des fichiers se fait par les 2 commandes suivantes :
gzip -d bob.tar.gz
ou
gunzip bob.tar.gz
Comme pour la commande compress, afficher le contenu d’un fichier compressé s’effectue
avec zcat.
3.3
La commande bzip2
La commande bzip2 utilise l’algorithme de compression de texte par tri de blocs de BurrowsWheeler et le codage de Huffman. Les taux de compression sont supérieurs à ceux obtenus
par les 2 précédentes commandes. L’extension des fichiers générés est .bz2.
La syntaxe d’utilisation de bzip2 et bunzip2 est globalement la même que pour les précédentes
commandes. La commande bzcat permet de visualiser directement le contenu d’un fichier compressé.
5

Documents pareils