Comment compresser des fichiers sous Mac OS X ?

Compresser à l'aide de logiciels spécialisés

Vous pouvez déjà utiliser l'excellent logiciel DMG Maker, capable de créer des images-disques au format ".dmg", ".dmg.gz" (taux de compression supérieur) et même, à l'ancien format ".img" (NB. la version de DiskCopy pour Mac OS X n'est pas capable de créer la moindre images-disque). Seul ce dernier format, rappelons-le, sera adapté à l'envoi de fichiers propres à l'ancien monde Mac, fichiers qui abriteraient des ressources.
Le principal défaut des formats ".dmg" ou ".img" est de n'être utilisable que sur Mac. Ne l'utilisez pas pour envoyer des fichiers à des pécéistes, ils ne pourraient rien en tirer.

La version 6.0.1 du shareware DropStuff de la société Aladdin pourra aussi constituer une excellente solution. Cependant, elle ne créera que des fichiers ".sit" surtout exploitables dans le monde Mac où chacun possède StuffIt Expander, application permettant de les décompresser.
Notons qu'il existe une version pour Windows de l'Expander : vous pourriez donc inviter des windoïstes à la télécharger.
Ajoutons encore qu'une intéressante option de DropStuff permet de créer des fichiers ".exe" capables de s'auto-décompresser sur un PC tournant sous Windows. Ces fichiers-applications pourront même être protégés par mot de passe, comme tous les fichiers ".sit" traditionnels que vous pourriez créer.
StuffIt Deluxe, de la même société, fait encore mieux mais coûte aussi un peu plus cher... Il sait, entre autres choses, compresser selon de nombreux autres algorythmes et créer par exemple des fichiers ".tar", ".tgz", ".gz"... Vous ne pourrez pas, sauf erreur de ma part, trouver de version de démonstration de ce logiciel sur le web.

télécharger DMG Maker (version 1.0.6 minimum - gratuit - 124 ko)...

télécharger DropStuff (version 6.0.1 minimum - shareware à 30$ - 3,9 Mo)...

Informations concernant StuffIt Deluxe et Mac OS X (commercial - 79,95$)...

Créer une archive ".tar" à l'aide du Terminal de Mac OS X

Avertissement

Si vous n'avez jamais utilisé le Terminal, si vous n'avez aucune idée assez claire ni de son utilité ni de son fonctionnement, si les notions de dossier de départ et de chemin d'accès sont pour vous un peu vagues, si vous n'avez aucune idée des problèmes qui pourraient être posés par des noms de fichiers ou de dossiers comportants caractères spéciaux, accentués ou espaces, si vous ne connaissez pas encore les commandes "cd" et "man", si "[localhost:~]" est pour vous une expression mystérieuse, nous vous recommandons de découvrir tous ces rudiments avant de passer à l'acte. Ensuite, vous comprendrez et pourrez mettre en application facilement tous nos exemples concernant la compression.

Avant de passer à l'acte, vous devez être bien conscient que les méthodes de compression évoquées plus bas ne ne doivent pas être ni à des applications ni à certains fichiers abritant des ressources.

Les étapes de la compression

Nous allons voir comment utiliser le Terminal pour compresser dossiers et fichiers en créant une archive ".tar" (ou Tape ARchive, créée selon la méthode "GNUtar" permettant de regrouper plusieurs fichiers en un) compressée selon la très efficace méthode "gunzip", gzippée dit-on habituellement. Le résulat sera un fichier ".tar.gz" (équivalent à un fichier ".tgz"), format classique dans l'univers unix et très adapté à la transmission de données via Internet (vous remarquerez que la plupart des logiciels pour Mac OS X que vous aurez pu télécharger se présentent à ce format...).
NB. Pour ne pas tout compliquer, si différentes options de compression sont en réalités possibles, nous n'utiliserons ici que celles qui nous semblent être le plus fréquemment utiles.

Exemple 1. Créer une archive ".tar.gz" abritant un dossier et son contenu

Lancez l'application Terminal. La ligne suivante s'affiche :

[localhost:~] petit_nom%
NB : l'expression petit_nom sera remplacée, sur votre terminal par le nom de votre dossier d'utilisateur.

Admettons maintenant que vous vouliez compresser le contenu d'un dossier nommé "a_compresser", situé dans le dossier "Documents" (du dossier "petit_nom") et partons du principe voulant que le résultat de cette compression, soit aussi créé dans ce même dossier "Documents" (ce cas étant des plus simples).
. Tout d'abord, indiquez au Terminal de changer de point de départ, de ne plus commencer à raisonner à partir du dossier "petit_nom" mais à partir de son dossier "Documents" en tapant simplement :

cd Documents
Remarque : l'utilité de cette opération est d'éviter de devoir indiquer à chaque fois les chemins d'accès des différents éléments à compresser. Puisque la plupart des éléments à compresser seront, dans nos exemples, situés dans le même dossier "Documents", mieux vaut donner dès maintenant l'ordre au Terminal de considérer que ce dossier "Documents" est le point de départ de toutes choses. Nous pourrons ainsi désigner les sous-dossier ou fichiers du dossier "Documents" que nous voudrons compresser en n'inscrivant que leurs noms.

La touche Retour enfoncée pour envoyer la commande, le Terminal affiche l'expression suivante, preuve que le dossier de départ a changé :

[localhost:~/Documents] petit_nom%

Il ne vous reste plus qu'à inscrire une petite formule comprenant :

  1. la commande de compression : tar
  2. les options de cette commande, soit -zcvf, sachant par exemple que l'option "-z" permettra à elle seule de gzipper. Sans cette option, vous ne créeriez jamais qu'une archive ".tar".
  3. un nom de fichier de votre choix sachant que le résultat de la compression sera un fichier doté de ce nom. Nous avons choisi de l'appeler tar.tar.gz dans notre exemple. Le suffixe ".tar.gz" est très recommandé pour permettre à des machines distantes qui recevraient votre fichier de reconnaître chaque format de compression utilisé.
  4. la désignation du dossier a_compresser, nom que vous pourrez remplacer par le nom de n'importe quel dossier trouvé dans le dossier "Documents" de votre dossier "petit_nom", sur votre disque dur

En bref, puisque nous voulons compresser le dossier "a-compresser" (avec son contenu, bien évidemment...) du dossier "Documents" et que le résultat de cette compression doit être un fichier nommé "tar.tar.gz", nous n'avons qu'à inscrire sur le Terminal :

tar -zcvf tar.tar.gz a_compresser
Remarque : le fichier "tar.tar.gz" sera créé dans le dossier "Documents" puisque la première commande envoyée, "cd Documents", situe toutes les opérations qui suivent en prenant ce dossier "Documents" pour point de départ.
Pour le créer dans un autre dossier, précisez un chemin d'accès : "../Pictures/tar.tar.gz", pour que le fichier "tar.tar.gz" soit plutôt créé dans le dossier "Pictures", par exemple.

La touche Retour pressée, le terminal effectuera parfois un drôle de manège (plus les fichiers seront nombreux et volumineux et plus le manège aura des chances d'être étonnant), inscrivant au moins la liste du contenu du dossier "a-compresser" et détaillant, de manière plus où moins claire, la méthode de compression utilisée.
Cette option "amusante" peut être désactivée : il suffit pour cela d'éliminer l'option "v", de ne taper que "-cf" , l'option "-v" activant le verbose mode permettant à certaines commandes de raconter leur vie.

Vous trouverez ensuite un fichier nommé "tar.tar.gz" dans votre dossier "Documents", résultat de cette compression.

Exemple 2. Créer une archive ".tar.gz" abritant plusieurs éléments situés dans un même dossier

Même principe que dans l'exemple précédent. Si deux fichiers respectivement nommés "Fichier.txt" et "Fichier.pdf" par exemple, sont directement situés dans le dossier "Documents", il faudra inscrire, séparés par un espace, le nom des fichiers à archiver, à la suite du nom du fichier au format ".tar.gz" à créer (fichier toujours nommé "tar.tar.gz", comme dans tous les exemples qui suivront). Ce qui donne, dans notre exemple, la commande :

tar -zcvf tar.tar.gz Fichier.txt Fichier.pdf

Ce principe s'applique aussi bien à des dossiers ou à une combinaison dossiers+fichiers. Noms de fichiers ou de dossiers pourront être ajoutés à volonté. N'oubliez pas de placer un espace entre chaque nom et de désigner correctement chaque élément, selon les règles du Terminal.

Exemple 3. Créer une archive ".tar.gz" réunissant un dossier et un fichier situés dans deux dossiers différents

Même principe. Il faudra simplement préciser le chemin d'accès de chaque élément à compresser. A moins qu'un des éléments ne se trouve directement situé, comme dans notre exemple, dans le dossier "Documents", dossier posé comme dossier de départ.
En partant du principe que vous vouliez créer une archive nommée "tar.tar.gz" réunissant le dossier "a_compresser" et le fichier "Fichier.txt", si le fichier "Fichier.txt" se trouve dans le dossier "Documents" et le dossier "a_compresser" dans un sous-dossier du dossier "Documents" nommé "sous_dossier", la commande à envoyer devient :

tar -zcvf tar.tar.gz Fichier.txt sous_dossier/a_compresser

si le dossier "a_compresser" s'était trouvé dans le dossier "Documents" et le fichier "Fichier.txt" dans le dossier "sous_dossier", la commande aurait été :

tar -zcvf tar.tar.gz sous_dossier/Fichier.txt a_compresser

Le même principe s'applique encore à une quantité de fichiers ou/et de dossiers illimitée.

Evitez les chemins d'accès absolus : la commande "tar" prend en comptes tous les dossiers constituant un chemin d'accès donné, si bien que tous ces dossiers seront matérialisés après décompression. Si par exemple vous appliquiez la commande "tar" à un dossier désigné par ce chemin d'accès absolu :
/users/petit_nom/Documents/a_compresser
Après décompression, vous trouveriez un dossier vide nommé "Users" abritant le dossier vide "petit_nom", abritant le dossier vide "Document", abritant enfin le dossier "a_compresser" et tout son contenu. Beaucoup trop de dossiers vides à ouvrir avant de pouvoir trouver quelque chose... D'où l'intérêt d'une commande "cd" bien ajustée et de l'utilisation de chemins d'accès relatifs.

Gzipper des fichiers à l'aide du Terminal de Mac OS X

Il est aussi possible de gzipper directement grâce à la commande gzip. Mais cette commande ne s'applique qu'à des fichiers : il n'est pas possible de gzipper tout un dossier grâce à cette commande, mais il sera possible de gzipper séparément tous les fichiers qu'un dossier pourrait abriter. Dans ce cas, autant d'archives ".gz" que de fichiers présents seraient créées.
Pour regrouper plusieurs fichiers et/ou dossiers dans une seule archive gzippée, nous vous recommandons d'utiliser l'option "-z" de la commande "tar", c'est à dire d'appliquer la méthode précédemment détaillée.

Attention : la commande "gzip", telle que nous l'utiliserons, aura pour effet de donner naissance à des fichiers ".gz" qui viendront remplacer chaque fichier à compresser. Ces fichiers, s'ils abritaient des ressources, les perdraient aussitôt après compression (la méthode Gunzip étant incapable de conserver les ressources). Appliquer la commande "gzip" à des éléments comportant des ressources essentielles pourrait rendre ses éléments inutilisables après décompression. Dans le doute, ne compressez que des copies des éléments désirés, décompressez et voyez si le résultat est exploitable. Qu'une fichier ait perdu son icône après décompression n'est pas nécessairement le signe d'un fichier endommagé. Pour juger de son état, essayez de l'ouvrir avec l'application l'ayant créé.

Le dossier "petit_nom" est fixé comme dossier de départ dans les exemples qui suivent.

Gzipper un fichier

Un ou plusieurs fichiers pourront être gzippés en faisant usage de la commande gzip du Terminal. Nous avons décidé d'ajouter à cette commande l'option -v, qui permet surtout d'obtenir le taux de la compression effectuée (en %).

Pour gzipper un fichier nommé "fichier.txt", fichier situé dans un dossier "a_compresser" :

gzip -v a_compresser/fichier.txt

le fichier "fichier.txt" sera alors remplacée par un fichier nommé "fichier.txt.gz".

Pour gzipper un fichier "fichier.txt" du dossier "a_compresser" et, dans le même mouvement, un fichier "fichier.jpg" du dossier "Pictures", la commande sera :

gzip -v a_compresser/fichier.txt Pictures/fichier.jpg

Gzipper tous les fichiers d'un dossier

Gzipper tous les fichiers d'un dossier "a_compresser" du dossier "petit_nom" :

gzip -v a_compresser/*

Résultat : tous les fichiers du dossier "a_compresser" seront gzippés séparément. Chaque fichier sera effacé et remplacé par un fichier de même nom auquel l'extension ".gz" aura été ajoutée.

Vous pouvez bien sûr gzipper en même temps tous les fichiers d'un dossier et des fichiers situés dans différents autres dossier :

gzip -v a_compresser/* Pictures/fichier.jpg Pictures/fichier.gif
transp iMac OS X
logo iMac & Mac OS X
 
page d'accueil de la rubrique Mac OS X

Rudiments
avant de se lancer dans un téléchargement

formats de compression et d'applications sous Mac OS X

ressources de fichiers et Mac OS X

découverte du Terminal

compresser à l'aide du Terminal

activer le compte root

que conserver après installation des Developer Tools d'Apple





Copyright © 2001 Bruno Lapeyre