ZIP(1L) ZIP(1L) NOM zip, zipcloak, zipnote, zipsplit - empaquette et compacte (archive) des fichiers SYNOPSIS zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [-b path] [-n suffixes] [-t mmddyyyy] [-tt mmddyyyy] [ zipfile [ file1 file2 ...]] [-xi list] zipcloak [-dhL] [-b path] zipfile zipnote [-hwL] [-b path] zipfile zipsplit [-hiLpst] [-n size] [-b path] zipfile DESCRIPTION zip est un utilitaire d'empaquetage et de compactage des fichiers pour Unix, VMS, MSDOS, OS/2, Windows NT, Minix, Atari, Macintosh, Amiga et Acorn RISC OS. Il est analogue à la combinaison des commandes UNIX tar(1) et com- press(1) et est compatible avec PKZIP (le ZIP de Phil Katz pour systèmes MSDOS). Un programme jumeau (unzip(1L)), désarchive les archives zip. Les pro- grammes zip et unzip(1L) peuvent travailler avec des archives produites par PKZIP, et PKZIP et PKUNZIP peuvent travailler avec des archives produites par zip. zip version 2.3 est compatible avec PKZIP 2.04. Notez que PKUNZIP 1.10 ne peut pas extraire des fichiers produits par PKZIP 2.04 ou zip 2.3. Vous devez utiliser PKUNZIP 2.04g ou unzip 5.0p1 (ou une version ultérieure) pour les extraire. Pour obtenir une aide brève sur zip et unzip, lancez-le sans spécifier de paramètre sur la ligne de commande. Le programme est utile pour empaqueter plusieurs fichiers afin de les distribuer, les archiver et pour économiser de l'espace disque en com- pactant temporairement des fichiers ou dossiers inutilisés. Le programme zip met un ou plusieurs fichiers compactés dans une seule archive zip, ainsi que diverses informations sur les fichiers (nom, chemin, date, heure de la dernière modification, protection, et données de contrôle pour vérifier l'intégrité de l'archive). Une structure complète de dossiers peut être empaquetée dans une archive zip en une seule commande. Des niveaux de compactage de 2 :1 à 3 :1 sont courants pour des fichiers texte. zip a une méthode de compactage (déflation) et peut aussi empaqueter des fichiers sans les compacter. zip choisit automatiquement la meilleure des deux méthodes pour chaque fichier à compacter. Quand le nom d'une archive zip existante est fourni, zip remplacera les entrées de même nom dans l'archive zip et ajoutera des entrées pour les nouveaux noms. Par exemple, si foo.zip existe et contient foo/file1 et foo/file2, et le dossier foo contient les fichiers foo/file1 et foo/file3, alors : zip -r foo foo va remplacer foo/file1 dans foo.zip et ajouter foo/file3 à foo.zip. Après cela, foo.zip contiendra foo/file1, foo/file2, et foo/file3, avec foo/file2 inchangé entretemps. Si la liste des fichiers est spécifiée comme -@, [Pas sur MacOS] zip prend la liste des fichiers en entrée à partir de l'entrée standard. Sous UNIX, cette option est très puissante en conjonction avec la com- mande find(1). Par exemple, pour archiver tous les fichiers source C dans le dossier courant et tous les sous-dossiers : find . -name "*.[ch]" -print | zip source -@ (remarquez les guillemets pour éviter que l'environnement ne développe le *). zip accepte aussi un seul tiret (« - ») comme nom de fichier zip, auquel cas le fichier zip sera écrit vers la sortie standard, per- mettant de le renvoyer vers un autre programme. Par exemple : zip -r - . | dd of=/dev/nrst0 obs=16k écrirait le fichier zip directement sur une bande avec la taille de bloc spécifiée dans le but de faire une copie de sauvegarde du dossier courant. zip accepte aussi un seul tiret (« - ») comme nom du fichier à com- pacter, auquel cas le fichier sera lu depuis l'entrée standard, permet- tant à zip de recevoir les données depuis un autre programme. Par exem- ple : tar cf - . | zip backup - compacterait la sortie de la commande tar dans le but d'archiver le dossier courant. Ceci permet généralement une meilleure compactage que l'exemple précédent qui utilisait l'option -r, car zip utilise la redondance entre différents fichiers. L'archive peut être restaurée en utilisant la commande unzip -p backup | tar xf - Quand aucun fichier zip n'est donné et si stdout n'est pas un terminal, zip agit comme un filtre, compactant l'entrée standard vers la sortie standard. Par exemple, tar cf - . | zip | dd of=/dev/nrst0 obs=16k équivaut à tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k Les archives zip créées de cette façon peuvent être extraites avec le programme funzip qui est fourni par le paquetage unzip, ou par gunzip qui est fourni par le paquetage gzip. Par exemple : dd if=/dev/nrst0 ibs=16k | funzip | tar xvf - quand il modifie une archive zip existante, zip va écrire un fichier temporaire avec le nouveau contenu, et ne remplacera l'ancien que quand le processus de création de la nouvelle version est terminé sans erreur. Si le nom de l'archive zip ne contient pas d'extension, une extension .zip est ajoutée. Si le nom contient déjà une extension autre que .zip l'extension est conservée sans changement. OPTIONS -a [Pour les systèmes utilisant EBCDIC] Traduit le fichier en for- mat ASCII. -A Crée une archive auto-extractible. Une archive auto-extractible est créée en préfixant avec le code SFX une archive existante. L'option -A dit à zip d'ajuster les points d'entrée stockés dans l'archive pour prendre en compte ces données précédentes. Remarque : les archives auto-extractibles pour les Amiga sont un cas particulier. A ce jour, seul le port de Zip pour Amiga peut faire et mettre à jour ces ajustements correctement sans corruption. -J peut être utilisé pour enlever le code SFX si d'autres mises à jour doivent être faites. -B [VM/CMS et MVS] force une lecture binaire des fichiers (texte par défaut). -Bn [TANDEM] règle les options de formatage Edit/Enscribe avec n défini comme bit 0 : Ne pas ajouter de délimiteur (Edit/Enscribe) bit 1 : Utiliser LF plutôt que CR/LF comme délimiteur (Edit/Enscribe) bit 2 : Ajouter des espaces aux enregistrements jusqu'à la longueur maximale d'enregistrement (Enscribe) bit 3 : Enlève les espaces (Enscribe) bit 8 : Force une lecture grande de 30K (Expand) sur les fichiers non structurés. -b path Utilise le chemin spécifié path comme archive zip temporaire. Par exemple : zip -b /tmp stuff * mettra l'archive temporaire zip dans le dossier /tmp, écrasant stuff.zip dans le dossier courant à la fin de l'opération. Cette option n'est utile que lors de la mise à jour d'une archive existante, et que le système de fichiers qui la contient n'a pas assez d'espace pour contenir à la fois l'ancienne et la nouvelle archive en même temps. -c Ajoute une ligne de commentaire à chaque fichier. Les opérations (ajout, mise à jour) sont d'abord faites, puis le prompt demande une ligne de commentaire pour chaque fichier. entrez le commentaire suivi d'Entrée, ou seulement Entrée pour ne pas mettre de commentaire. -d Efface des entrées d'une archive zip. Par exemple : zip -d foo foo/tom/junk foo/harry/\* \*.o supprimera les entrées foo/tom/junk, tous les fichiers com- mençant par foo/harry/, et tous les fichiers finissant par .o (dans tous les chemins). Remarquez que l'expansion du chemin par l'environnement à été inhibée avec des anti-slash, de manière que zip puisse voir les astérisques, permettant à zip de chercher dans le contenu de l'archive zip plutôt que dans celui du dossier courant. Sous MSDOS, -d respecte la casse quand il cherche des noms dans l'archive zip. Ceci exige que les noms de fichiers soient sai- sis en majuscules si ils ont été archivés par PKZIP sur un système MSDOS. -df [MacOS] Inclut seulement le zone données des fichiers zippés dans l'archive. C'est utile pour exporter des fichiers vers d'autres systèmes d'exploitation. Les zones de ressource seront complètement ignorées. -D Ne crée pas d'entrées dans l'archive zip pour les dossiers. Des entrées pour les dossiers sont créées par défaut afin de sauveg- arder leurs attributs dans l'archive. La variable d'environ- nement ZIPOPT peut être utilisée pour changer les options par défaut. Par exemple sous Unix avec sh : ZIPOPT="-D"; export ZIPOPT (La variable ZIPOPT peut être utilisée pour toutes les options sauf -i et -x et peut comporter plusieurs options.) L'option -D est un raccourci pour -x "*/" mais cette dernière ne peut être mise dans la variable ZIPOPT. -e Crypte le contenu de l'archive zip en utilisant un mot de passe qui est saisi en ligne de commande par un prompt (ceci n'est pas renvoyé ; si l'erreur standard n'est pas une tty, zip va s'arrêter avec une erreur). Le mot de passe est demandé deux fois pour éviter les erreurs de frappe. -E [OS/2] Utilise l'attribut étendu .LONGNAME (s'il existe) comme nom de fichier. -f Remplace (rafraîchit) une entrée existante dans l'archive zip seulement s'il a été modifié plus récemment que la version con- tenue dans l'archive zip ; contrairement à l'option (-u) celle- ci n'ajoutera pas de fichiers qui ne sont pas encore dans l'ar- chive zip. Par exemple : zip -f foo Cette commande devrait être lancée à partir du même dossier que celui d'où la commande zip originelle a été lancée, puisque les chemin stockés dans les archives zip sont toujours relatifs. Remarquez que la variable d'environnement de fuseau horaire TZ doit être réglée en accord avec le fuseau horaire local afin que les options -f , -u et -o fonctionnent correctement. Les raisons à ceci sont un peu subtiles mais ont un rapport avec les différences entre le format des dates Unix (toujours en GMT) et la plupart des autres systèmes d'exploitation (toujours en temps local) et la nécessité de comparer les deux. Une valeur typique de TZ est « MET-1MEST » (fuseau Europe Centrale avec ajustement automatique des heures d'été/hiver). -F Répare l'archive zip. Cette option peut être utilisée si cer- tains morceaux de l'archive manquent. Le résultat n'étant pas garanti, vous DEVEZ faire une copie de sauvegarde de l'archive d'origine avant. Quand l'option est répétée comme ceci -FF les tailles de com- pactage données par l'archives ne sont pas prises en compte et zip scanne à la recherche de marques spéciales pour identifier les limites des membres de l'archive. L'option seule -F est plus fiable si l'archive n'est pas très endommagée, par exemple si elle a seulement été tronquée, donc essayez cette option d'abord. Aucune de ces options ne va récupérer des archives qui ont été incorrectement transférées en mode ASCII au lieu de binaire. Après la réparation, l'option -t de unzip peut afficher que quelques fichiers ont un mauvais CRC. De tels fichiers ne peu- vent être restaurés ; vous pouvez les supprimer de l'archive en utilisant l'option -d de zip. -g Ajoute à l'archive zip spécifiée, plutôt que de créer une nou- velle. Si cette opération échoue, zip tente de remettre l'ar- chive dans son état d'origine. Si la restauration échoue, l'ar- chive peut être corrompue. Cette option est ignorée quand il n'existe pas d'archive ou quand au moins un membre de l'archive doit être mis à jour ou supprimé. -h Affiche l'aide sur zip (ceci apparaît aussi si zip est lancé sans paramètres) -i files Inclut seulement les fichiers spécifiés, exemple : zip -r foo . -i \*.c qui va seulement inclure les fichiers se terminant par .c dans le dossier courant et ses sous-dossiers. (remarque pour les utilisateurs de PKZIP : la commande équivalente est pkzip -rP foo *.c PKZIP ne permet pas la récursion dans d'autres dossiers que le courant.) L'antislash inhibe la substitution du nom de fichier par l'environnement, de manière que la recherche de noms soit faite par zip dans tous les niveaux de dossier. Aussi possible : zip -r foo . -i@include.lst qui va seulement inclure les fichiers dans le dossier courant et ses sous-dossiers qui correspondent aux types dans le fichier include.lst. -I [Acorn RISC OS] Ne scanne pas les fichiers Image. Quand utilisé, zip ne va pas considérer les fichiers Image (ex. partitions DOS ou archives Spark quand SparkFS est chargé) comme des dossiers. Il les stockés comme un seul fichier. Par exemple, si SparkFS est chargé, le zippage d'une archive Spark donnera un fichier zip contenant un dossier (et son con- tenu), tandis qu'un utilisant l'option « I » donnera un fichier zip contenant une archive Spark. De fait ce second cas sera aussi obtenu si SparkFS n'est pas chargé. -j Ne stocke que le nom du fichier sauvé (jette le chemin), et ne stocke pas les noms de dossiers. Par défaut, zip stocke le chemin complet (relatif au dossier courant). -jj [MacOS] stocke le chemin complet (+ le nom de volume). Le chemin complet incluant le nom de volume sera stocké. Par défaut seul le chemin relatif est stocké. -J Enlève toute donnée préfixée à l'archive (ex. du code SFX). -k Tente de convertir les noms et chemins en conformité avec MSDOS, stocke seulement les attributs MSDOS (seulement le droit d'écri- ture utilisateur sur UNIX), et marque les entrées comme faites sous MSDOS (même si ce n'est pas le cas) ; pour une compati- bilité avec PKUNZIP qui ne peut gérer certains noms comme ceux avec deux points. -l Traduit le caractère de fin de ligne Unix LF dans la convention MSDOS CR LF. Cette option ne doit pas être utilisée sur des fichiers binaires. Cette option peut être utilisée sous Unix si le fichier zip est destiné à PKUNZIP sous MSDOS. Si les fichiers ont déjà des CR LF, cette option ajoute un CR supplémentaire. Ceci assure que unzip -a sous Unix restaure une copie exacte du fichier originel, pour annuler l'effet de zip -l. -ll Traduit le caractère de fin de ligne MSDOS CR LF dans celui d'Unix LF. Cette option ne doit pas être utilisée sur des fichiers binaires. Cette option peut être utilisée sous MSDOS si le fichier zip est destiné à unzip sous Unix. -L Affiche la licence de zip. -m Déplace les fichiers spécifiés dans l'archive zip ; de fait, ceci supprime les fichiers et dossier archivés à la fin de la création de l'archive zip spécifiée. Si un dossier devient vide à la suite de la suppression de fichiers, il est lui aussi sup- primé. Aucune suppression n'est effectuée tant que l'archive zip n'a pas été créée sans erreur. Cette option est utile pour économiser l'espace disque mais est potentiellement dangereuse, il est par conséquent recommandé de l'utiliser en combinaison avec -T afin de tester l'archive avant de supprimer tous les fichiers en entrée. -n suffixes Ne compacte pas les fichiers nommés avec les suffixes donnés. Ces fichiers sont simplement stockés (0% compactage) dans le fichier zip résultant, afin que zip ne perde pas de temps à essayer de les compacter. Les suffixes sont séparés par des : ou des ;. Par exemple : zip -rn .Z :.zip :.tiff :.gif :.snd foo foo va copier tout foo dans foo.zip, mais stockera tous les fichiers finissant par .Z, .zip, .tiff, .gif, ou .snd sans essayer de les compacter (les fichiers image et son ont souvent leur propre méthode spéciale de compactage). Par défaut, zip ne compacte pas les fichiers dont les extensions sont dans la liste .Z :.zip :.zoo :.arc :.lzh :.arj. De tels fichiers sont stockés directement dans l'archive. La variable d'environnement ZIPOPT peut être utilisée pour changer les options par défaut. Par exemple sous Unix avec csh : setenv ZIPOPT "-n .gif :.zip" Pour essayer de compacter tous les fichiers, utilisez : zip -n : foo L'option de compactage maximal -9 tente aussi de compacter tous les fichiers sans tenir compte de l'extension. Sur les systèmes Acorn RISC OS les suffixes sont réellement de types de fichiers (au format 3 digits hexadécimaux). Par défaut, zip ne compacte pas les fichiers dont les types sont dans la liste DDC :D96 :68E (cad. Archives, fichiers CFS et fichiers PackDir). -N [Amiga, MacOS] Sauve les notes de fichier Amiga ou MacOS comme commentaires de l'archive zip. Elles peuvent être restaurées en utilisant l'option -N de unzip. si -c est aussi utilisé, le prompt de saisie de commentaires ne sera proposé que pour les fichiers n'ayant pas de notes. -o Met la date de dernière modification de l'archive zip à la plus ancienne des dates trouvées dans les entrées composant l'archive zip. Ceci peut être fait sans aucune autre opération, si désiré. Par exemple : zip -o foo va changer la date de dernière modification de l'archive foo.zip à la plus ancienne des dates trouvées dans les entrées composant foo.zip. -P password utilise password pour encrypter les entrées du fichier zip (s'il y en a) CECI N'EST PAS SÛR ! Beaucoup de systèmes d'exploitation multi-utilisateurs fournissent des outils pour qu'un utilisateur voie la ligne de com- mande courante d'un autre utilisateur ; même sur un système mono-utilisateur il y a toujours le risque qu'on lise par-dessus votre épaule. Stocker le mot de passe dans la ligne de commande d'un script automatisé est encore pire. quand c'est possible, utilisez toujours le prompt interactif pour entrer les mots de passe. (Et si la sécurité est vraiment importante, utilisez un cryptage fort comme PGP (NDT : ou GnuPG) plutôt que le cryptage relativement faible fourni dans les outils zip standard.) -q Mode silencieux ; élimine les messages d'information et les prompts pour commentaires. (Utile, par exemple, dans les scripts et les tâches d'arrière-plan). -Qn [QDOS] stocke l'information sur le fichier dans son en- tête avec n défini comme ceci bit 0 : N'ajoute pas d'en-têtes aux fichiers bit 1 : Ajoute des en-têtes à tous les fichiers bit 2 : N'attend pas d'appuyer sur une touche pour ter- miner -r Parcourt la structure de dossiers récursivement ; par exemple : zip -r foo foo Dans ce cas, tous les fichiers et dossiers dans foo sont sauvegardés dans une archive zip nommée foo.zip, incluant les fichiers dont les noms commencent par ".", puisque la récursion n'utilise pas le mécanisme de substitution de l'environnement. Si vous ne voulez inclure qu'un sous- groupe de fichiers dans le dossier foo et ses sous- dossiers, utilisez l'option -i pour spécifier le motif des fichiers à inclure. Vous ne devriez pas utiliser -r avec le nom ".*", puisqu'il correspond à ".." ce qui fera zipper le contenu du dossier parent (ce qui n'est probablement pas le but recherché). -R Parcourt la structure de dossiers récursivement à partir du dossier courant ; par exemple : zip -R foo '*.c' Dans ce cas, tous les fichiers de type *.c dans l'arborescence commençant dans le dossier courant sont archivés dans une archive zip nommée foo.zip. Remarque pour le utilisateurs de PKZIP : la commande équivalente est pkzip -rP foo *.c -S [MSDOS, OS/2, WIN32 et ATARI] Inclut les fichier système et cachés. [MacOS] Inclut les fichiers invisibles pour le finder, qui sont normalement ignorés. -t mmddyyyy Ignore les fichiers modifiés avant la date spécifiée, où mm est le mois (0-12), dd est le jour du mois (1-31), et yyyy est l'année. Le format ISO 8601 de date yyyy-mm-dd est aussi accepté. Par exemple : zip -rt 12071991 infamy foo zip -rt 1991-12-07 infamy foo ajoute tous les fichiers dans foo et ses sous-dossiers qui ont été modifiés le 7 Décembre 1991 ou postérieure- ment, dans l'archive zip infamy.zip. -tt mmddyyyy Ignore les fichiers modifiés avant ou à la date spécifiée, où mm est le mois (0-12), dd est le jour du mois (1-31), et yyyy est l'année. Le format ISO 8601 de date yyyy-mm-dd est aussi accepté. Par exemple : zip -rtt 11301995 infamy foo zip -rtt 1995-11-30 infamy foo ajoute tous les fichiers dans foo et ses sous-dossiers qui ont été modifiés avant le 30 Novembre 1995, dans l'archive zip infamy.zip. -T Teste l'intégrité du nouveau fichier zip. Si le test échoue, l'ancien fichier est inchangé et (avec l'option -m ) aucun fichier en entrée n'est supprimé. -u Remplace (met à jour) une entrée existante dans l'archive zip seulement si elle a été modifiée plus récemment que la version qui est déjà dans l'archive zip. Par exem- ple : zip -u stuff * ajoute tout nouveau fichier dans le dossier courant, et met à jour tout fichier modifié depuis la dernière création/modification de l'archive zip stuff.zip (remar- quez que zip ne va pas essayer de mettre stuff.zip dans lui-même qui vous faites ceci). Remarquez que l'option -u sans paramètres agit comme l'option -f (rafraîchir). -v Mode bavard ou affichage du diagnostic des informations de version. Normalement, quand utilisée pour de vraies opérations, cette option active l'affichage d'un indicateur de pro- gression pendant la compactage et demande les détails sur des problèmes de structure du fichier zip. Quand -v est le seul paramètre de la ligne de commande, et que stdout n'est pas redirigé vers un fichier, un écran de diagnostic est affiché. En plus de l'en-tête de l'écran d'aide avec le nom du programme, la version, et la date de sortie, quelques adresses de la page mère de Info-ZIP et de sites de distribution sont donnés. Puis des informations sur l'environnement sont affichées (type de compilateur et version, système d'exploitation, date de compilation et paramètres optionnels utilisés pour créer l'exécutable zip. -V [VMS] Sauve les attributs de fichier VMS. Les archives zip créées avec cette option ne sont généralement pas utilisables sur d'autres systèmes. -w [VMS] Ajoute le numéro de version des fichiers au nom, incluant ainsi de multiples versions des fichiers. (Par défaut : utilise seulement la version la plus récente des fichiers spécifiés). -x files Exclut les fichiers spécifiés, comme ceci : zip -r foo foo -x \*.o va inclure le contenu de foo dans foo.zip en excluant tous les fichiers qui finissent par .o. L'antislash évite la substitution de noms par l'environnement, de manière que la recherche de noms soit faite par zip à tous les niveaux de dossier. Aussi possible : zip -r foo foo -x@exclude.lst qui va inclure le contenu de foo dans foo.zip en excluant tous les fichiers dont le motif est dans le fichier exclude.lst. -X N'enregistre pas les attributs de fichier supplémentaires (EA sous OS/2, uid/gid et temps de fichiers sous Unix). -y Stocke les liens symboliques en tant que tels dans l'ar- chive zip, plutôt que de compacter et stocker le fichier reféré par le lien (UNIX seulement). -z Prompte la saisie d'un commentaire multi-ligne pour l'ar- chive zip entière. Ce commentaire se termine par une ligne contenant seulement un point, ou une condition de fin de fichier (^D sous UNIX, ^Z sous MSDOS, OS/2, et VAX/VMS). Le commentaire peut être lu depuis un fichier : zip -z foo < foowhat -# Ajuste la vitesse de compactage à partir du chiffre spécifié #, où -0 indique aucun compactage (archivage de tous les fichiers), -1 indique la méthode de compactage la plus rapide (compactage plus faible) et -9 indique la méthode de compactage la plus lente (compactage optimal, ignore la liste des suffixes). Le niveau de compactage par défaut est -6. -! [WIN32] Utilise les droits (si obtenus) pour gérer tous les aspects de la sécurité de WinNT. -@ Prend la liste des fichiers à archiver à partie de l'entrée standard. Un nom de fichier par ligne seule- ment. -$ [MSDOS, OS/2, WIN32] Inclut le nom de volume pour le lecteur contenant le premier fichier à compacter. Si vous voulez seulement inclure le nom de volume, ou forcer un lecteur spécifique, utilisez le nom du lecteur comme pre- mier nom de fichier, comme ceci : zip -$ foo a : c :bar EXEMPLES L'exemple le plus simple : zip stuff * crée l'archive stuff.zip (si elle n'existe pas) et archive tous les fichiers du dossier courant dedans, en les compactant (le suffixe .zip est ajouté automatiquement, sauf si le nom de l'ar- chive contient déjà un point ; ceci permet la spécification explicite d'autres suffixes). de par la manière dont l'environnement fait la substitution de caractères, les fichiers commençant par « . » ne sont pas inclus ; pour les inclure : zip stuff .* * Même ceci ne va pas inclure les sous-dossiers à partir du dossier courant. Pour zipper un dossier entier, la commande : zip -r foo foo crée l'archive foo.zip, contenant tous les fichiers et dossiers du dossier foo qui est dans le dossier courant. Vous pouvez vouloir faire une archive zip qui contient les fichiers dans foo, sans enregistrer le nom du dossier, foo. Vous pouvez utiliser l'option -j pour abandonner les chemins, comme ceci : zip -j foo foo/* Si vous avez peu d'espace disque, il se peut qu'il n'y en ait pas assez pour contenir à la fois le dossier à compacter et son archive zip. Dans ce cas, vous pouvez créer l'archive par étapes en utilisant le paramètre -m. Si foo contient les sous- dossiers tom, dick, et harry, vous pouvez : zip -rm foo foo/tom zip -rm foo foo/dick zip -rm foo foo/harry où la première commande crée foo.zip, et les deux suivantes lui ajoutent des entrées. À la fin de chaque commande zip, la dernière archive créée est supprimée, libérant de la place pour l'exécution de la suivante. RECHERCHE DE MOTIF Cette section ne s'applique qu'à UNIX. Regardez cet espace pour des détails sur des opérations MSDOS et VMS. Les environnements UNIX (sh(1) et csh(1)) font de la substitu- tion de nom de fichier sur les paramètres de commande. Les car- actères spéciaux sont : ? équivaut à tout caractère unique * équivaut à tout paquet de caractères (même de taille 0) [] équivaut à tout caractère dans la plage indiquée entre les crochets (exemple : [a-f], [0-9]). Quand ces caractères sont trouvés (sans être protégés avec un antislash ou des guillemets), l'environnement va recherche les fichiers à partir du dossier courant qui correspondent au motif, et remplacer le paramètre avec la liste des noms trouvés. Le programme zip peut faire la même recherche sur les noms qui sont dans l'archive zip qui va être modifiée ou, dans le cas des paramètres -x (exclure) ou -i (inclure), sur la liste des fichiers à opérer, en utilisant des anti-slashes ou des guillemets pour dire à l'environnement de ne pas faire l'expan- sion des noms. En général, quand zip rencontre un nom dans la liste des fichiers à archiver, il commence par le chercher dans le système de fichiers. S'il le trouve, il l'ajoute à la liste des fichiers à traiter. Sinon, il le cherche dans l'archive zip en cours de modification (si elle existe), en utilisant les car- actères spéciaux décrits ci-dessus s'ils sont présents. Pour chaque fichier trouvé, il l'ajoute à la liste des fichiers à traiter, sauf si le nom est aussi dans ceux listés par le paramètre -x, ou n'est pas dans ceux listés par le paramètre -i. La recherche de motif inclut le chemin, donc des motifs comme \*.o équivalent à des fichiers finissant par « .o », quel que soit le chemin les préfixant. Remarquez que l'antislash doit précéder tout caractère spécial (ex. ?*[]), ou le paramètre entier être encadré par des guillemets (""). En général, utilisez antislash pour demander à zip de rechercher un motif avec les options -f (rafraîchir) et -d (supprimer), et parfois après un -x (exclure) quand il est utilisé avec une opération appropriée (ajouter, -u, -f, ou -d). ENVIRONNEMENT ZIPOPT contient les options par défaut qui seront prises en compte quand vous utilisez zip ZIP [Pas sur RISC OS et VMS] voir ZIPOPT Zip$Options [RISC OS] voir ZIPOPT Zip$Exts [RISC OS] contient les extensions séparées par un : qui vont faire que les fichier natifs comportant une de ces extensions sera ajouté à l'archive zip avec le nom de base et l'extension intervertis. zip ZIP_OPTS [VMS] voir ZIPOPT VOIR AUSSI compress(1), shar(1L), tar(1), unzip(1L), gzip(1L) DIAGNOSTICS Les valeurs de retour (ou niveau d'erreur) sont proches de celles définies par PKWARE et prennent les valeurs suivantes, sauf sous VMS : 0 normal ; aucune erreur ou avertissement détecté. 2 fin inattendue du fichier zip. 3 une erreur générique dans le fichier zip a été détectée. L'opération peut cependant s'être ter- minée correctement ; quelques fichiers zip créés avec d'autres archiveurs et abîmés peuvent être simplement corrigés. 4 zip n'a pas pu allouer de la mémoire pour un ou plusieurs tampons pendant son initialisation. 5 une erreur grave dans le fichier zip a été détectée. L'opération a probablement immédiatement échoué. 6 l'entrée est trop grande pour être morcelée avec zipsplit 7 format de commentaire invalide 8 zip -T a échoué ou manque de mémoire 9 l'utilisateur a interrompu zip prématurement avec Contrôle-C (ou similaire) 10 zip a trouvé une erreur en utilisant un fichier temporaire 11 erreur de lecture ou de recherche 12 zip n'a rien à faire 13 le fichier zip n'existe pas ou est vide 14 erreur lors de l'écriture d'un fichier 15 zip n'a pas réussi à créer le fichier de sortie 16 mauvais paramètre dans le ligne de commande 18 zip n'a pas pu ouvrir un fichier spécifié en entrée VMS interprète les valeurs de retour standard Unix (ou PC) comme d'autres choses, qui n'ont aucun rapport, donc zip les remplace par des codes de statut du style VMS. Le remplacement se fait de manière suivante : 1 (succès) pour une sortie normale, et (0x7fff000? + 16*code_de_retour_normal_de_zip) pour toutes les erreurs, où le « ? » est 0 (avertissement) pour la valeur zip de 12, 2 (erreur) pour les valeurs zip de 3, 6, 7, 9, 13, 16, 18, et 4 (erreur fatale) pour les restantes. BOGUES zip 2.3 n'est pas compatible avec PKUNZIP 1.10. Utilisez zip 1.1 pour produire des archives zip pouvant être extraites par PKUN- ZIP 1.10. Les archives zip faites avec zip 2.3 ne doivent pas être mises à jour par zip 1.1 ou PKZIP 1.10, si elles contiennent des membres cryptés ou si elles ont été produites à travers un tube (NDT:pipe) ou un périphérique à accès continu. Les anciennes versions de zip ou PKZIP auraient créé une archive de format incorrect. Les anciennes versions peuvent lister le contenu d'un fichier zip mais ne peuvent en aucune façon l'extraire (de par le nouveau algorithme de compactage). Si vous n'utilisez pas le cryptage et utilisez des fichiers normaux sur disques, vous n'avez pas besoin de vous occuper de ce problème. Sous VMS, tous les formats de fichiers étranges ne sont pas traités correctement. Seules les archives zip au format stream- LF sont censées fonctionner avec zip. Les autres peuvent être converties en utilisant le programme BILF de Rahul Dhesi. Cette version de zip gèrent une partie de la conversion de manière interne. Quand vous utilisez Kermit pour transférer des fichiers zip depuis Vax vers MSDOS, saisissez « set file type block » sur le Vax. quand vous transférez depuis MSDOS vers Vax, saisissez « set file type fixed » sur le Vax. Dans les deux cas, saisissez « set file type binary » sous MSDOS. Sous VMS, zip bloque sur des spécifications de fichiers qui utilisent la syntaxe DECnet foo : :*.*. Sous OS/2, zip ne peut pas trouver certains noms, comme ceux qui comprennent un point d'exclamation ou un dièse. Ceci est un bug de OS/2 lui-même : le programme 32-bit DosFindFirst/Next ne trouve pas ces noms. D'autres programmes comme GNU tar sont aussi affectés par ce bug. Sous OS/2, la quantité d'Attributs Étendus affichés par DIR est (pour des raisons de compatibilité) celle retournée par la ver- sion 16-bit de DosQueryPathInfo(). Sinon OS/2 1.3 et 2.0 auraient rapporté des tailles de EA différentes lors d'un DIR. Cependant, la structure retournée par la version 32-bit de Dos- QueryPathInfo() est un peu différente, elle utilise des octets de remplissage et des pointeurs de liens (c'est une liste chaînée) pour avoir tous les champs en frontière de 4 octets afin d'être portable vers les futures versions RISC OS/2. Donc la valeur donnée par zip (qui utilise la taille de ce mode 32-bit) diffère de celle donnée par DIR. zip stocke le format 32-bit pour être portable, même la version compilée en 16-bit avec MS-C sous OS/2 1.3, donc même cette version donne la taille du mode 32-bit. AUTEURS Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly, Onno van der Linden, Kai Uwe Rommel, Igor Mandrichenko, John Bush and Paul Kienitz. Permission est donnée à tout indi- vidu ou institution d'utiliser, copier, ou redistribuer ce logi- ciel dès lors que tous les fichiers d'origine sont inclus, que ce n'est pas vendu pour des bénéfices, et que cette notice sur le copyright est incluse. COMME TOUT CE QUI EST LIBRE, ZIP ET SES UTILITAIRES ASSOCIÉS SONT FOURNIS EN L'ÉTAT ET SANS AUCUNE GARANTIE DE QUELQUE SORTE, NI IMPLICITE NI EXPLICITE. DANS AUCUN CAS LES PROPRIÉTAIRES DU COPYRIGHT NE PEUVENT ÊTRE POURSUIVIS POUR QUELQUE DOMMAGE RÉSUL- TANT DE L'UTILISATION DE CE LOGICIEL. Veuillez envoyer les rapports de bogues et commentaires par email à : zip-bugs@lists.wku.edu. Pour les rapports de bogues, merci d'inclure la version de zip (voir zip-h ), les options utilisées pour le compiler (voir zip-v ), la machine et le système d'exploitation utilisés, et autant de compléments d'information que possible. REMERCIEMENTS Merci à R. P. Byrne pour son programme Shrink.Pas, qui a inspiré ce projet, et auquel l'algorithme de ratatinage à été volé ; à Phil Katz pour avoir mis dans le domaine public le format de fichier zip, le format de compactage, et l'extension de nom .ZIP, et pour avoir accepté des changements mineurs dans le for- mat du fichier ; à Steve Burg pour ses clarifications sur le format deflate ; à Haruhiko Okumura et Leonid Broukhis pour avoir donné des idées utiles pour l'algorithme de compactage ; à Keith Petersen, Rich Wales, Hunter Goatley et Mark Adler pour la mise à disposition d'une liste de diffusion et d'un site ftp pour l'utilisation du groupe Info-ZIP ; et plus partic- ulièrement, au groupe Info-ZIP lui-même (listé dans le fichier infozip.who) sans les efforts duquel tester et corriger des bogues d'une version portable de zip n'aurait pas été possible. Enfin nous devrions remercier (blâmer) le premier modérateur de Info-ZIP, David Kirschbaum, pour nous avoir mis dans ce guêpier. Cette page de manuel a été réécrite pour UNIX par R. P. C. Rodgers. Elle a été traduite en 2001 par José JORGE . Info-ZIP 14 August 1999 (v2.3) ZIP(1L)