Formation Unix/Linux (4) Archivage et compression de fichiers Olivier BOEBION mars 2004 1 L extension d un fichier ss UNIX La notion d extension d un fichier n est pas aussi importante ss UNIX que ss d autres systèmes d exploitation. Ss Unix, ts 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 srce en langage C se termine par.c). La commande file suivie d un nom de fichier analyse le contenu de celui-ci et retrne le type du fichier. Le tableau 1 vs présente quelques extensions cramment utilisées. Extensions Type des fichiers.a.sl.so librairies.h fichiers header pr programmes C.c fichiers srces en C.f fichiers srces en Fortran.ps fichiers postscript.eps fichiers postcript encapsulés.html fichiers hypertextes (WEB).gif.jpg.bmp fichiers images.tar fichiers archives réalisés avec tar.cpio fichiers archives réalisés avec cpio.gz fichiers compressés avec gzip.z fichiers compressés avec compress.c fichiers compressés avec compact fichier C++.bz fichiers compressés avec bzip2 Tab. 1 Quelques extensions de fichier 1
2 L archivage de fichiers 2.1 La commande tar 2.1.1 Description tar (Tape ARchive) est une commande qui place une structure de répertoire sur une bande, sur une disquette 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 vs choisissez cette commande pr sauvegarder une arborescence, vs pvez spécifier les noms de chemin d une manière relative 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 vs shaitez sauvegarder votre répertoire dans un fichier, vs tapez en vs plaçant dans votre Home Directory : tar cvf /tmp/sauv.tar. Pr une sauvegarde sur bande, vs utilisez le fichier spécial /dev/st0 qui correspond au lecteur de bande ss Linux : tar cvf /dev/st0./home 2.1.3 Restauration des fichiers avec tar Vs pvez visualiser le contenu de la sauvegarde en utilisant l option -t de la manière suivante : tar tvf /tmp/sauv.tar tar tvf /dev/st0 Pr restaurer la totalité de votre sauvegarde, vs vs placez ss votre répertoire privé et vs tapez : tar xvf /tmp/sauv.tar tar xvf /dev/st0 Pr restaurer un fichier particulier dans une archive, vs spécifiez le nom de celui-ci : tar xvf /tmp/sauv.tar./tmp/liberty.c 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. Vs utiliserez, par exemple ls 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 vs shaitez sauvegarder votre répertoire privé sur un lecteur de disquette, vs utiliserez les options -o (Output), -v (Visualisation) et B (Buffer) : cd find. cpio -ob > /dev/fd0 Si, au contraire, vs shaitez sauvegarder votre compte ss un simple fichier, vs utiliserez les mêmes options en redirigeant vers le fichier shaité : cd find. cpio -ob > /tmp/sauv.cpio Si, plus tard, vs shaitez sauvegarder sur une autre disquette les fichiers modifiés depuis moins de 3 jrs, vs utiliserez les options de find : find. -mtime -3 cpio -ob > /dev/fd0 find. -mtime -3 cpio -ob > /tmp/sauv2.cpio Vs pvez aussi générer une sauvegarde incrémentielle. Pr cela, il vs 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, vs pvez sauvegarder ts les fichiers modifiés ajtés depuis cette date en tapant : find. -newer ~/.datesauv cpio -ob > /dev/fd0 find. -newer ~/.datesauv cpio -ob > /tmp/sauv2.cpio N bliez pas, dans ce cas, de mettre ensuite à jr la date du fichier.datesauv (avec la commande tch, par exemple). 3
2.2.3 Restauration de fichiers avec cpio Pr obtenir la liste des fichiers sauvegardés sur un support, vs utiliserez les options -i (Input), et -t (Table) : cpio -itvb < /dev/fd0 cpio -itvb < /tmp/sauv.cpio Pr effectuer une restauration complète, vs taperez : cpio -idvb < /dev/fd0 cpio -idvb < /tmp/sauv.cpio Si vs shaitez restaurer un fichier particulier, vs utiliserez, comme pr tar, la syntaxe suivante : cpio -idvb.profile < /dev/fd0 cpio -idvb.profile < /tmp/sauv.cpio 2.3 Autres tils D autres tils d archivage 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 tils de compression de données tels que compress compact. Issu du domaine publique, l til 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 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 pr 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 gunzip bob.tar.gz Comme pr 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 Burrows- Wheeler 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 pr les précédentes commandes. La commande bzcat permet de visualiser directement le contenu d un fichier compressé. 5