Content-type: text/html
Manpage of UNZIP
UNZIP
Section: Misc. Reference Manual Pages (1L)
Updated: 16 Avril 2000 (v5.41)
Index
Return to Main Contents
NOM
unzip - liste, teste et extrait des fichiers compressés dans une archive ZIP
SYNOPSIS
unzip [-Z] [-cflptuvz[abjnoqsCLMVX$/]]
file[.zip] [file(s) ...]
[-x xfile(s) ...] [-d exdir]
DESCRIPTION
unzip va lister, tester ou extraire des fichiers à partir d'une archive ZIP,
courante sur les systèmes MS-DOS. Le comportement par défaut (sans options)
est l'extraction vers le dossier courant (et ses sous-dossiers) de tous les
fichiers dans l'archive ZIP spécifiée. Un programme complémentaire, zip(1L),
crée les archives ZIP ; ces deux programmes sont compatibles avec les archives
créées par PKZIP et PKUNZIP pour MS-DOS de PKWARE, mais dans quelques
cas les options ou le comportement par défaut diffèrent.
PARAMÈTRES
- fichier[.zip]
-
Chemin de(s) archive(s) ZIP. Si le nom contient un joker, les fichiers
correspondants sont traités dans l'ordre déterminé par le système d'exploitation
(ou le système de fichiers). Seul le nom peut contenir un joker ; le chemin
lui-même ne peut pas. Les expressions avec des jokers sont similaires à celles
de egrep(1) pur UNIX et peuvent contenir :
-
- *
-
équivaut à tout paquet de caractères (même de taille 0)
- ?
-
équivaut à tout caractère unique
- [...]
-
équivaut à un des caractères trouvés entre les traits verticaux ; les plages sont
spécifiés par un caractère, un trait horizontal, et un caractère de fin ; si un
« ! » ou un « ^ » suit le trait vertical de gauche, alors la plage est exclue.
(c'est-à-dire que tous les caractères sauf ceux spécifiés sont recherchés.)
-
(Assurez-vous d'encadrer par des guillemets tout caractère qui peut être
interprété ou modifié par le système d'exploitation, particulièrement sous
Unix et VMS.) Si aucune occurrence n'est trouvée, le nom est considéré
littéral ; si ce cas aussi échoue, le suffixe .zip est ajouté.
Remarquez que les archives auto-extractibles sont supportées, de même
que n'importe quelle autre archive ZIP ; il faut seulement spécifier
le suffixe .exe (le cas échéant) explicitement.
- [fichier(s)]
-
Une liste optionnelle des membres de l'archive à traiter, séparés par des
espaces.
(Les versions VMS compilées avec VMSCLI défini doivent plutôt séparer les fichiers
avec des virgules. Voir -v dans OPTIONS ci-dessous.)
Des expressions (jokers) peuvent être utilisés pour spécifier plusieurs membres ;
voir ci-dessus. Encore une fois, assurez-vous de protéger les expressions qui
peuvent être interprétées ou modifiées par le système d'exploitation.
- [-x xfile(s)]
-
Une liste optionnelle des membres de l'archive à exclure du traitement.
Étant donné que les jokers sont valides pour les séparateurs de dossiers (« / »),
cette option peut être utilisée pour exclure tout fichier se trouvant dans un
sous-dossier. Par exemple, « unzip foo *.[ch] -x */* » va extraire tous
les fichiers source C dans le dossier principal, mais pas dans les sous-dossiers.
Sans l'option -x, tous les fichiers source C dans tous les dossier auraient
été extraits.
- [-d exdir]
-
Un dossier optionnel où seront extraits les fichiers. Par défaut, tous les fichiers
et sous-dossiers sont recréés dans le dossier courant ; l'option -d
permet l'extraction vers un dossier donné (si vous avez la permission d'y écrire).
Cette option ne doit pas être à la fin de la ligne de commande ; elle est aussi
acceptée avant le nom du fichier zip (avec les options normales), immédiatement
après le nom, ou entre les fichier(s) et l'option -x.
L'option et le dossier doivent être concaténés sans aucun espace entre eux,
mais remarquez que ceci peut changer le comportement normal de l'environnement.
En particulier, « -d ~ » (tilde) est interprété par les environnements Unix
comme le nom du dossier racine de l'utilisateur courant, mais « -d~ »
est traité comme un sous-dossier littéral « ~ » du dossier courant.
OPTIONS
Remarquez que, afin de supporter du matériel obsolète, l'écran d'aide
de unzip est limité à 22 ou 23 lignes et devrait par conséquent être
considéré comme une partie basique de la syntaxe de unzip plutôt que comme
une liste exhaustive de tous les paramètres. La liste exhaustive suit :
- -Z
-
Mode de zipinfo(1L). Si le premier paramètre de la ligne de commande est -Z,
les autres paramètres sont considérés comme concernant zipinfo(1L). Regardez la
page de manuel appropriée pour avoir une description de ces options.
- -A
-
[OS/2, Unix DLL] affiche une aide extensive sur l'interface de programmation de la DLL (API).
- -c
-
extrait les fichiers vers la sortie standard/l'écran (« CRT »). Ce paramètre est similaire
à -p à l'exception que le nom de chaque fichier est affiché avant son extraction,
que le paramètre -a est autorisé, et qu'une conversion ASCII-EBCDIC est automatiquement
effectuée si nécessaire. Cette option n'est pas listée dans l'écran d'utilisation de unzip.
- -f
-
rafraîchit les fichiers existants, cad. n'extrait que les fichiers qui sont
déjà sur le disque et qui sont plus récents que la copie sur le disque. Par défaut
unzip demande avant d'écraser, mais l'option -o permet de supprimer les questions.
Remarquez que sous beaucoup de systèmes d'exploitation, la variable de faisceau horaire (TZ)
doit être définie correctement afin que les options -f et -u fonctionnent
correctement (sous Unix cette variable est normalement définie automatiquement).
Les raisons à ceci sont un peu subtiles mais ont un rapport avec les différences
entre le format des dates DOS (toujours en temps local) et le format des dates Unix
(toujours en GMT) et la nécessité de comparer les deux. Une valeur typique de TZ
est « MET-1MEST » (fuseau Pacifique US avec ajustement automatique des heures d'été/hiver).
- -l
-
liste les fichiers dans l'archive (format court). Les noms, la taille non compactée
des fichiers et leurs jour et heure de modification sont affichés, ainsi que les
totaux pour tous les fichiers spécifiés. Si UnZip a été compilé avec OS2_EAS
défini, l'option -l liste aussi les colonnes comportant la taille des
attributs étendus OS/2 (EAs) et les listes de contrôle d'accès OS/2 (ACLs).
De plus, le commentaire du fichier zip et les commentaires individuels des
entrées (le cas échéant) sont affichés. Si un fichier a été archivé à partir
d'un système qui ne gère pas la casse (par exemple, l'ancien système de fichiers
MS-DOS FAT) et que l'option -L a été donnée, le nom du fichier est
converti en minuscules et est préfixé avec un accent circonflexe (^).
- -p
-
extrait les fichiers vers le tube (stdout). Rien d'autre que les données du
fichier n'est envoyé vers stdout, et les fichiers sont toujours extraits en
mode binaire, exactement comme ils ont été compactés (pas de conversions).
- -t
-
teste les fichiers archive. Cette option extrait chaque fichier spécifié
en mémoire et compare le CRC (contrôle de redondance cyclique, un contrôle
de somme amélioré) du fichier décompacté avec le CRC stocké dans l'archive.
- -T
-
[la plupart des OS] règle la date des archives sur le fichier le plus récent
de chacune. Ceci correspond à l'option de zip -go à la différence
près qu'elle peut être utilisée avec des jokers pour les noms d'archive (ex.
« unzip -T \*.zip ») et est beaucoup plus rapide.
- -u
-
met à jour les fichiers existants et crée de nouveaux si nécessaire. Cette
option agit comme -f, décompactant (avec confirmation) les fichiers qui
sont plus récents que ceux de même nom sur le disque, et en plus elle extrait
ceux qui n'existent pas encore sur le disque. Voir -f ci-dessus pour
l'information sur les réglages corrects de fuseau horaire.
- -v
-
Mode bavard ou affichage du diagnostic des informations de version.
Cette option a évolué et se comporte maintenant comme à la fois une option et
un modificateur. En tant qu'option elle a deux rôles : quand un fichier zip
est spécifié sans aucune autre option, -v liste les fichiers archivés
de manière étendue, ajoute à l'information de base de -l la méthode de
compactage, la taille compactée, le ratio de compactage et le CRC 32-bit.
Quand aucun fichier zip n'est spécifié (c.-à-d. que la commande complète est
simplement « unzip -v »), un écran de diagnostic est affiché. En plus de
l'en-tête normal avec la date de sortie et la version, unzip liste l'adresse
du site ftp Info-ZIP et où trouver une liste d'autres sites ftp et non-ftp ;
le système d'exploitation pour lequel il a été compilé, ainsi que (probablement)
le matériel sur lequel il a été compilé, le compilateur et la version utilisée,
et la date de compilation ; toute option de compilation qui peut affecter le
fonctionnement du programme (voir aussi DECRYPTAGE ci-dessous) ; et toute
option de variable d'environnement qui peut faire de même (voir
OPTIONS D'ENVIRONNEMENT ci-dessous).
Comme modificateur il travaille avec d'autres options (ex. -t) pour
produire plus de détails ou des informations de débogage ; ceci n'est pas encore
entièrement implémenté mais le sera dans les versions futures.
- -z
-
affiche seulement le commentaire de l'archive.
MODIFICATEURS
- -a
-
convertit les fichiers texte. Normalement tous les fichiers sont extraits identiques
à l'original. L'option -a entraîne une conversion automatique des fichiers
détectés par zip comme de type texte (ceux avec l'étiquette `t' label dans
les listings de zipinfo, au lieu de « b »), convertissant les fins de ligne,
les caractères de fin de fichier et le jeu de caractères lui-même si nécessaire.
(Par exemple, les fichiers Unix utilisent des LF pour une fin de ligne (EOL) et
n'ont pas de marqueur de fin de fichier (EOF) ; Macintoshes utilisent des CR
comme EOL ; et la plupart des systèmes d'exploitation PC utilisent CR+LF pour
EOL et contrôle-Z pour EOF. De plus, les mainframes IBM et le Michigan Terminal
System utilisent EBCDIC plutôt que le jeu de caractères plus commun ASCII, et
NT supporte l'Unicode.)
Remarquez que l'identification par zip des fichiers texte n'est aucunement
parfaite ; quelques fichiers « texte » peuvent être des fichiers binaires et vice
versa. Du coup, unzip affiche « [text] » ou « [binary] » comme
contrôle visuel pour chaque fichier qu'il extrait quand l'option -a est
utilisée. L'option -aa force l'extraction de tous les fichiers comme
texte, sans tenir compte du type supposé.
- -b
-
[général] traite tous les fichiers comme binaires (pas de conversions de texte).
C'est un raccourci pour ---a.
- -b
-
[Tandem] force la création de fichiers avec un code type type 180 (« C ») quand
on extrait des entrées Zip marquées comme « texte ». (Sur Tandem, -a
est activé par défaut, voir ci-dessous).
- -b
-
[VMS] convertit automatiquement les fichiers binaires (voir -a ci-dessus)
en enregistrements de longueur fixe de 512-octets. Le doublage de l'option
(-bb) force l'extraction de tous les fichiers à ce format.
- -B
-
[Unix seulement, et seulement si compilé avec UNIXBACKUP défini]
sauve une copie de sauvegarde de chaque fichier écrasé avec un tilde ajouté
(ex. l'ancienne copie de « foo » est renommée en « foo~ »).
Ceci est similaire au comportement par défaut d'emacs(1).
- -C
-
recherche les noms de fichier sans tenir compte de la casse. La philosophie de
unzip est « vous avez ce que vous demandez » (c'est aussi pour cela que
-L/-U ont changé ; voir les options correspondantes ci-dessus).
Comme certains systèmes de fichiers respectent complètement la casse
(notamment ceux pour Unix) et comme les archives ZIP et unzip lui-même
sont portables sur plusieurs plateformes, le comportement par défaut de
unzip est de rechercher le noms et les jokers en respectant la casse.
Cela signifie que spécifier « makefile » sur la ligne de commande
ne trouvera que « makefile » dans l'archive, pas « Makefile » ou
« MAKEFILE » (et similairement pour les jokers). Comme ceci ne correspond pas
au comportement de beaucoup d'autres systèmes de fichiers (par exemple
OS/2 HPFS, qui préserve la casse mais ne la respecte pas), l'option
-C peut être utilisée pour forcer toutes les recherches de noms de
fichiers à être insensibles à la casse.
Dans l'exemple ci-dessus, les trois fichiers auraient été trouvés pour
« makefile » (ou « make* », ou similaire). L'option -C
affecte les fichiers de la liste normale mais aussi de la liste d'exclusion
(xlist).
- -E
-
[MacOS seulement] affiche le contenu du champ supplémentaire MacOS pendant
la restauration.
- -F
-
[Acorn seulement] supprime l'extension de type NFS des fichiers.
- -F
-
[Unix seulement, et seulement si compilé avec ACORN_FTYPE_NFS défini]
traduit les informations de type de fichier depuis les extensions ACORN
RISC OS vers une extension de type NFS et l'ajoute aux noms des fichiers
extraits. (Quand le fichier a déjà une extension de type NFS, elle est
remplacée, par l'information du champ supplémentaire.)
- -i
-
[MacOS seulement] ignore les noms de fichiers stockés dans le champ
supplémentaire MacOS. À la place, le nom le plus compatible de l'en-tête
de l'entrée est utilisé.
- -j
-
jette le chemin. La structure de dossier contenue dans l'archive n'est pas
reconstruite ; tous les fichiers sont mis dans le dossier d'extraction
(par défaut, le dossier courant).
- -J
-
[BeOS seulement] jette les attributs des fichiers. Les attributs ne sont
pas restaurés, seules les données le sont.
- -J
-
[MacOS seulement] ignore les champs supplémentaires MacOS. Toute l'information
spécifique à MacOS est ignorée. Les parties données et ressource sont restaurées
en deux fichiers séparés.
- -L
-
convertit en minuscules tout fichier provenant d'un système d'exploitation
ou de fichiers qui travaille en majuscules seulement. (C'était le comportement
par défaut de unzip pour les versions antérieures à 5.11 ; le nouveau
comportement par défaut est identique à l'ancien comportement avec l'option
-U, qui est maintenant obsolète et sera supprimée dans une version future.
Suivant l'archiveur, les fichiers stockés sous un système mono-casse (VMS, ancienne
FAT MS-DOS, etc.) peuvent être stockés tout en majuscules ; ceci peut être
laid ou gênant quand on les extrait vers un système qui préserve la casse comme
OS/2 HPFS ou ou qui est sensible à la casse comme Unix. Par défaut unzip
liste et extrait de tels noms comme ils sont stockés (à l'exception des troncages,
conversions de caractères non supportés, etc.) ; cette option provoque la
conversion en minuscules des noms de tous les fichiers provenant de certains systèmes.
- -M
-
dirige toutes les sorties vers un filtre interne similaire à la commande more(1)
sous Unix. À la fin d'un écran plein, unzip s'arrête avec un prompt
« --More-- » ; l'écran suivant peut être visualisé en appuyant sur la touche
Entrée (Retour Chariot) ou la barre espace. unzip peut être terminé en
appuyant sur la touche « q » et, sur certains systèmes, la touche Entrée.
Contrairement à la commande Unix more(1), il n'y a pas de capacités de recherche
et d'édition. De plus, unzip ne remarque pas si de longues lignes sont coupées
au bord de l'écran, ce qui imprimera des lignes supplémentaires et probablement
fera défiler vers le haut le texte avant qu'il ne soit vu. Sur certains systèmes
le nombre de lignes disponibles sur l'écran n'est pas détecté, auquel cas
unzip considère que la hauteur est de 24 lignes.
- -n
-
n'écrase jamais les fichiers existants. si un fichier existe, saute son
extraction sans afficher de prompt. Par défaut, unzip demande avant
d'écraser un fichier qui existe déjà ; l'utilisateur peut choisir d'écraser
seulement le fichier courant, écraser tous les fichiers, ne pas extraire le
fichier courant, ne pas extraire tous les fichiers existants, ou renommer
le fichier courant.
- -N
-
[Amiga] extrait les commentaires des fichiers comme des notes de fichiers Amiga.
Les commentaires de fichiers sont créés avec l'option -c de zip(1L),
ou avec l'option -N sur le port pour Amiga de zip(1L), qui stocke les notes
de fichier comme commentaires.
- -o
-
écrase les fichiers existants sans prompter. Ceci est une option dangereuse,
par conséquent utilisez-la avec attention. (Elle est souvent utilisée avec
-f, cependant, et est le seul moyen d'écraser les EA de dossier sous OS/2.)
- -P password
-
-
utilise password pour décrypter des fichiers zip cryptés (le cas échéant).
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 commande 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 fournit dans les
outils zip standard.)
- -q
-
mode silencieux (-qq = encore plus silencieux). Normalement unzip
affiche les noms des fichiers qu'il est en train d'extraire ou de tester, la
méthode d'extraction, les commentaires éventuels d'archive ou de fichier, et un
résumé quand une archive est terminée. L'option -q[q]
supprime certains ou tous ces messages.
- -s
-
[OS/2, NT, MS-DOS] convertit les espaces dans les noms de fichiers en tiret bas.
Comme tous les systèmes d'exploitation PC permettent les espaces dans les noms
de fichiers, unzip extrait par défaut les fichiers avec les espaces intacts
(ex. « EA DATA. SF »). Ceci peut être gênant, cependant, étant que MS-DOS
en particulier ne gère pas correctement les espaces dans les noms de fichiers.
La conversion des espaces en tirets bas peut éliminer la gêne dans certains cas.
- -U
-
(obsolète ; à supprimer dans les version futures) laisse les noms de fichiers
en majuscules s'ils ont été créés sous MS-DOS, VMS, etc. Voir -L ci-dessus.
- -V
-
conserve (VMS) les numéros de version de fichier. Les fichiers VMS peuvent être
enregistrés avec un numéro de version, au format fichier.ext;##. Par défaut
les numéros de version « ;## » sont tronqués, mais cette option permet de
les conserver. (Sur des systèmes de fichiers qui limitent les noms à des longueurs
particulièrement courtes, les numéros de version peuvent être tronqués ou éliminés
malgré cette option.)
- -X
-
[VMS, Unix, OS/2, NT] restaure les droits d'utilisateur (UIC)sous VMS, ou les
droits d'utilisateur et de groupe (UID/GID) sous Unix, ou les listes de contrôle
d'accès (ACL) sous les versions réseau de OS/2 (Warp Server avec IBM LAN
Server/Requester 3.0 à 5.0; Warp Connect avec IBM Peer 1.0), ou les ACL de
sécurité sous Windows NT. Dans la plupart de cas cela va demander des privilèges
système spéciaux, et la répétition de l'option (-XX) sous NT demande à
unzip d'utiliser les privilèges pour l'extraction ; mais sous Unix, par
exemple, un utilisateur qui appartient à plusieurs groupes peut restaurer des
fichiers appartenant à n'importe lequel de ces groupes, dès lors que l'identité
de l'utilisateur UID correspond à la sienne. remarquez que les attributs normaux
des fichiers sont toujours restaurés - cette option ne s'applique qu'aux attributs
particuliers à un système d'exploitation. [Les listes de contrôle d'accès de NT
ne semblent pas être spécialement compatibles avec celles de OS/2, donc aucune
tentative de conversion des droits entre les plateformes n'est faite. Il n'est de
toute manière pas évident que cette conversion soit utile.]
- -$
-
[MS-DOS, OS/2, NT] restaure le nom de volume si le support d'extraction est
amovible (ex. une disquette). La répétition de l'option (-$$)
permet également le nommage de volumes non amovibles (disques durs).
Par défaut, les noms de volumes sont ignorés.
- -/ extensions
-
-
[Acorn seulement] écrase la liste d'extensions fournies par la variable
d'environnement Unzip$Ext. Pendant l'extraction, les extensions qui correspondent
à une de la liste sont mises devant le nom de base du fichier extrait.
OPTIONS D'ENVIRONNEMENT
Le comportement par défaut de unzip peut être modifié par des options
placées dans une variable d'environnement. Ceci peut être fait pour n'importe
quelle option, mais ce n'est probablement très utile que pour les paramètres
-a, -L, -C, -q, -o, ou -n :
demander à unzip de convertir les fichiers texte par défaut,
de convertir depuis les systèmes mono-casse en minuscules, de rechercher les
noms sans prendre en compte la casse, de travailler en mode silencieux, ou
de toujours ou ne jamais écraser les fichiers existants.
Par exemple, pour rendre unzip aussi silencieux que possible, rapportant
seulement les erreurs, on utilisera la commande suivante :
En effet, les options d'environnement sont considérées comme des paramètres
de ligne de commande, mis de fait en premier sur la ligne de commande. Pour
écraser une option d'environnement, vous pouvez utiliser « l'opérateur moins »
pour l'enlever. Par exemple, pour écraser un des paramètres du mode silencieux
de l'exemple ci-dessus, utilisez la commande
Le premier tiret est le caractère de basculement normal, et le second le signe
moins, agissant sur l'option q. Ceci enlève un niveau de mode silencieux. Pour
annuler les deux niveaux, deux (ou plus) signes moins peuvent être utilisés :
(les deux sont équivalents.) Ceci peut sembler étrange ou confus, mais est
raisonablement intuitif : il suffit d'ignorer le premier tiret et de commencer
la lecture. C'est aussi le même comportement que la commande Unix nice(1).
Comme suggéré dans les exemples ci-dessus, les noms de variable par défaut sont
UNZIP_OPTS pour VMS (où le symbole utilisé pour installer unzip comme
commande extérieure aurait été confondu avec la variable d'environnement),
et UNZIP pour tous les autres systèmes d'exploitation. Pour être compatible
avec zip(1L), UNZIPOPT est aussi accepté (non demandé). Si à la fois
UNZIP et UNZIPOPT sont définis, cependant, UNZIP est prioritaire.
L'option de diagnostic de unzip (-v sans nom de fichier zip)
peut être utilisée pour visualiser les quatre valeurs possibles des variables
d'environnement de unzip et zipinfo.
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 et -u opèrent correctement. Voir la description de
-f ci-dessus pour les détails. Cette variable peut aussi être
nécessaire pour que les marques de temps sur les fichiers extraits soient
faites correctement. Sous Windows 95/NT unzip devrait connaître le
fuseau horaire même si TZ n'est pas affectée, s'il est correctement défini
dans le panneau de contrôle.
DÉCRYPTAGE
Les archives cryptées sont pleinement supportées par les logiciels Info-ZIP,
mais de par les restrictions à l'exportation depuis les États-Unis, le
support du dé-/cryptage peut être désactivé dans votre exécutable compilé.
Cependant, depuis le printemps 2000, les restrictions à l'exportation ont été
levées, et nos fichiers source incluent maintenant tout le code de cryptage.
si vous avez besoin d'une distribution en binaire avec le cryptage activé,
regardez le fichier « WHERE » dans toute distribution de sources ou de binaires
Info-ZIP pour les sites aux US ou à l'extérieur.
Quelques compilations de unzip peuvent ne pas supporter le décryptage.
Pour le savoir, vous soit essayer d'extraire une archive cryptée, ou lire
l'écran de diagnostic de unzip (voir l'option -v) si
« [decryption] » est dans les options de compilation.
Comme écrit ci-dessus, l'option -P peut être utilisée pour fournir le
mot de passe, au détriment de la sécurité. La meilleure méthode de décryptage
est l'extraction normale ; si un fichier est crypté, unzip va prompter
une demande de mot de passe sans afficher ce qui est saisi.
unzip continue d'utiliser le même mot de passe tant qu'il semble valide,
en testant les 12 octets d'en-tête pour chaque fichier. Le mot de passe correct
semblera toujours bon lors de ce test, mais il y a une chance sur 256 qu'un mot
de passe incorrect semble aussi bon. (Ceci est une caractéristique du format
zip de PKWARE ; cela permet de lutter contre les attaques par force de calcul
qui obtiendraient un gain de vitesse en ne testant que l'en-tête.) Dans le cas
où un mot de passe incorrect passe le test, soit un CRC incorrect est généré pour
les données extraites, soit unzip va échouer pendant l'extraction parce que
les octets « décryptés » ne seront pas un fichier compressé valide.
Si le premier mot de passe échoue au test de l'en-tête, unzip va prompter
une nouvelle demande de mot de passe, et ainsi de suite jusqu'à ce que tous les
fichiers soient extraits. Si le mot de passe est inconnu, une saisie nulle (cad.
juste un retour chariot) est reçu comme un signal pour ne plus prompter.
Seuls les fichiers non cryptés de l'archive seront du coup extraits. (En fait,
ce ci n'est pas tout-à-fait vrai ; les anciennes versions de zip(1L) et
zipcloak(1L) permettaient les mots de passe vides, donc unzip teste
tous les fichiers cryptés pour voir si le mot de passe vide fonctionne. Ceci
peut aboutir à des « faux succès » et des erreurs d'extraction, comme mentionné
ci-dessus.)
Les archives encryptées avec des mots de passe 8-bit (par exemple, des mots de
passe avec des caractères accentués européens) peuvent ne pas être portables
sur d'autres systèmes ou archiveurs. Ce problème vient des différentes méthodes
d'encodage pour ces caractères, par exemple Latin-1 (ISO 8859-1) et OEM code
page 850. PKZIP 2.04g pour DOS utilise le code page OEM; PKZIP 2.50
pour Windows utilise Latin-1 (et est du coup incompatible avecPKZIP pour
DOS) ; Info-ZIP utilise le code page OEM sous DOS, OS/2 et Win3.x mais
Latin-1 partout ailleurs ; et WinZip 6.x de Nico Mak n'autorise pas les
mots de passe 8-bit du tout.
UnZip 5.3 essaye d'utiliser le jeu de caractères par défaut (cad. Latin-1),
puis l'autre (cad. le code page OEM) pour tester les mots de passe. Sur les
systèmes EBCDIC, si les deux précédents échouent, l'encodage EBCDIC est utilisé
en dernier ressort. (Comme il n'y a pas d'archiveur connu qui encrypte avec
l'encodage EBCDIC, EBCDIC n'est pas testé sur des systèmes non-EBCDIC.)
D'autres jeux de caractères ISO que Latin-1 ne sont pas supportés.
EXEMPLES
Pour utiliser unzip afin d'extraire tous les membres de l'archive letters.zip
dans le dossier courant et ses sous-dossiers, les créant si besoin :
Pour extraire tous les membres de l'archive letters.zip dans le dossier
courant seulement :
Pour tester letters.zip, en affichant seulement un résumé disant si
l'archive est saine ou pas :
Pour tester all les fichiers zip du dossier courant, en n'affichant que
les résumés :
(L'anti-slash avant l'astérisque n'est requis que si l'environnement développe
les jokers, comme sous Unix ; des guillemets doubles pourraient être utilisés
à la place, comme dans les exemples ci-dessous.) Pour extraire vers la
sortie standard tous les membres de letters.zip dont les noms se
terminent par .tex, en convertissant automatiquement à la convention
locale de fin de ligne et renvoyer la sortie vers more(1) :
Pour extraire le fichier binaire paper1.dvi vers la sortie standard et le
renvoyer vers un programme d'impression :
Pour extraire tous les fichiers source FORTRAN et C --*.f, *.c, *.h, et Makefile--
dans le dossier /tmp :
(les guillemets doublés ne sont nécessaires que sous Unix.) Pour extraire
tous les fichiers source FORTRAN et C, sans respecter la casse (ex. *.c et
*.C, et tout makefile, Makefile, MAKEFILE ou similaire) :
Pour extraire tous ces fichiers mais convertir les noms MS-DOS ou VMS de
majuscules en minuscules et convertir les fins de ligne de tous les fichiers
au standard local (sans prendre en compte le marquage éventuel en
« binaire ») :
Pour extraire seulement les nouvelles versions des fichiers déjà existants
dans le dossier courant, sans prompter de questions (REMARQUE : attention
au décompactage dans un fuseau horaire différent d'un fichier créé dans un
autre - les archives ZIP autres que celles créées par Zip 2.1 ou plus récent
ne contiennent pas d'information sur le fuseau horaire, et un fichier « plus
récent » d'une autre zone peut, de fait, être plus ancien) :
Pour extraire les nouvelles versions des fichiers déjà existants dans le
dossier courant et créer les autres (même risque que pour l'exemple
précédent) :
Pour afficher un écran de diagnostic comportant les options de unzip
et zipinfo stockées dans les variables d'environnement, si le support
de cryptage a été intégré à la compilation, quel compilateur a été utilisé,
etc. :
Dans les cinq derniers exemples, il est sous-entendu que UNZIP ou UNZIP_OPTS
vaut -q.
Pour faire un simple listage silencieux :
Pour faire un listage ultra silencieux :
(Remarquez que le « .zip » est généralement inutile.) Pour faire un
listage standard:
ou
ou
CONSEILS
Le mainteneur courant, étant peu occupé, trouve utile de définir une paire
d'alias : tt pour « unzip -tq » et ii pour
« unzip -Z » (ou « zipinfo »). On peut donc saisir simplement
« tt zipfile » pour tester une archive, ce qui est une bonne habitude.
Avec un peu de chance unzip va afficher « No errors detected
in compressed data of zipfile.zip, » après quoi on peut respirer un bon coup.
Le mainteneur trouve aussi utile de mettre la variable d'environnement UNZIP à
« -aL » et est tenté d'ajouter aussi « -C ». Sa variable ZIPINFO
est mise à « -z ».
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é.
- 1
-
un ou plus d'erreurs ont été détectées, mais le processus a été fini avec
succès. Ceci inclut les archives où une ou plusieurs entrées n'ont pas été
extraites à cause d'une méthode de compression non supportée ou un mot
de passe inconnu.
- 2
-
une erreur générique dans le fichier zip a été détectée. L'opération peut
cependant s'être terminée correctement ; quelques fichiers zip créés avec
d'autres archiveurs et abîmés peuvent être simplement corrigés.
- 3
-
une erreur grave dans le fichier zip a été détectée. L'opération a
probablement immédiatement échoué.
- 4
-
unzip n'a pas pu allouer de la mémoire pour un ou plusieurs tampons
pendant son initialisation.
- 5
-
unzip a manqué de mémoire ou n'a pas pu obtenir une console pour saisir
le mot de passe.
- 6
-
unzip n'a pas pu allouer de la mémoire pendant la décompression vers le disque.
- 7
-
unzip n'a pas pu allouer de la mémoire pendant la décompression en mémoire.
- 8
-
[actuellement non utilisé]
- 9
-
le fichier zip n'a pas été trouvé.
- 10
-
mauvais paramètre(s) dans la ligne de commande.
- 11
-
aucun fichier demandé n'a été trouvé dans l'archive zip .
- 50
-
le disque est (ou a été) plein pendant l'extraction.
- 51
-
fin prématurée du fichier zip.
- 80
-
l'utilisateur a interrompu zip prématurement avec contrôle-C (ou similaire)
- 81
-
une ou plusieurs entrées n'ont pas été testées ou extraites à cause d'une méthode
de compression non supportée ou un mot de passe inconnu.
- 82
-
aucun fichier n'a été trouvé car le(s) mot(s) de passe étai(en)t erroné(s).
(Si au moins un fichier est extrait, cependant, la valeur de retour est 1.)
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, 0x7fff0001 pour les avertissements,
et (0x7fff000? + 16*code_de_retour_normal_de_unzip) pour toutes les autres erreurs,
où le `?' est 2 (erreur) pour les valeurs unzip de 2, 9-11 et 80-82,
et 4 (erreur fatale) pour les restantes(3-8, 50, 51).
De plus, il y a une option de compilation pour étendre ce comportement :
la définition de RETURN_CODES donne un explication humaine lisible du sens de la
valeur de retour.
BOGUES
Les archives morcelées ne sont pas encore supportées, sauf avec l'aide de
zip. (Tous les morceaux doivent être concaténés ensemble dans l'ordre,
puis « zip -F » doit être effectué sur l'archive pour la « réparer ».)
Ceci sera corrigé dans la prochaine version majeure.
Les archives lues à partir de l'entrée standard ne sont pas encore supportées,
sauf avec funzip (et même ainsi seul le premier membre de l'archive est
extrait).
Les archives encryptées avec des mots de passe 8-bit (par exemple, des mots de
passe avec des caractères accentués européens) peuvent ne pas être portables
sur d'autres systèmes ou archiveurs. Voir les détails dans DECRYPTION
ci-dessus.
L'option d'unzip -M (« more ») est trop simpliste dans sa gestion
des sorties écran ; comme mentionné ci-dessus, elle ne détecte pas le sauts de
ligne occasionnés par les longues lignes et peut par conséquent effacer
certaines lignes avant qu'elles aient pu être lues. unzip devrait détecter
et traiter chaque cas de ligne trop longue comme une ligne supplémentaire affichée.
Ceci requiert la connaissance de la largeur et de la hauteur de l'affichage. De
plus, unzip devrait détecter la vraie géométrie de l'affichage sur tous
les systèmes.
Les dates, heures et droits des dossier ne sont restaurés que sous Unix.
[MS-DOS] Quand on teste ou extrait des fichiers depuis une disquette défectueuse,
si l'option « Échec » est choisie depuis le message DOS « Annuler, Ressayer,
Echec? » les anciennes versions de unzip peuvent bloquer le système,
exigeant un redémarrage. Ce problème est réglé, mais Contrôle-c (ou Contrôle-Attn)
peut toujours être utilisé pour terminer unzip.
Sous DEC Ultrix, unzip échouait parfois sur des grandes archives (mauvais
CRC, pas toujours reproductible). Ceci était apparemment dû à un bogue matériel
(mémoire cache) ou du système d'exploitation (mauvaise gestion des erreurs de
pagination ?). Comme Ultrix a été abandonné pour Digital Unix (OSF/1), ceci ne
devrait plus être un problème.
[Unix] Les fichiers spéciaux Unix tels les tampons FIFO (tubes nommés), les
périphériques de blocs et de caractères ne sont pas restaurés même s'ils sont
quelque peu représentés dans l'archive zip, de même que les fichiers liés ne sont
pas re-liés. Basiquement les seuls fichiers restaurés par unzip sont les
fichiers réguliers, les dossiers, les liens symboliques.
[OS/2] Les Attributs Étendus pour des dossier existants ne sont mis à jour que
si l'option -o (« écraser tout ») est donnée. Ceci est une limitation
du système d'exploitation ; comme les dossiers n'ont qu'une heure de création,
unzip ne peut pas déterminer si les attributs d'un dossier sont plus
récents ou pas que ceux du dossier sur le disque. En pratique ceci peut signifier
qu'un traitement en deux passes est requis : d'abord décompacter l'archive
normalement (avec ou sans rafraîchissement des fichiers existants), puis
on écrase seulement les entrées de dossier (ex. « unzip -o foo */ »).
[VMS] Quand on extrait vers un autre dossier, seule la syntaxe [.foo] est
acceptée par l'option -d ; la syntaxe simple d'Unix foo est
silencieusement ignorée (de même que la syntaxe moins commune de VMS
foo.dir).
[VMS] Quand le fichier extrait existe déjà, le prompt de unzip ne permet
que d'annuler, écraser ou renommer ; il devrait y avoir un choix supplémentaire
pour créer une nouvelle version du fichier. En fait, le choix écraser crée une
nouvelle version ; l'ancienne version n'est ni écrasée ni supprimée.
VOIR AUSSI
funzip(1L), zip(1L), zipcloak(1L), zipgrep(1L),
zipinfo(1L), zipnote(1L), zipsplit(1L)
URL
La page d'Info-ZIP est actuellement sur
ftp://ftp.info-zip.org/pub/infozip/ .
AUTEURS
Les premiers auteurs d'Info-ZIP (actuellement membres semi-actifs du groupe
Zip-Bugs) sont : Greg « Cave Newt » Roelofs (UnZip) ; Onno van der Linden (Zip);
Jean-loup Gailly (compactage); Mark Adler (décompactage, fUnZip) ; Christian
Spieler (coordination de la maintenance de UnZip, VMS, MS-DOS, Windows 95, NT,
code partagé, intégration générale de Zip et UnZip et optimisation) ;
Mike White (Windows GUI, Windows DLLs) ; Kai Uwe Rommel (OS/2) ;
Paul Kienitz (Amiga, Windows 95); Chris Herborth (BeOS, QNX, Atari) ;
Jonathan Hudson (SMS/QDOS) ; Sergio Monesi (Acorn RISC OS); Harald
Denker (Atari, MVS) ; John Bush (Solaris, Amiga); Hunter Goatley (VMS); Steve
Salisbury (Windows 95, NT) ; Steve Miller (Windows CE GUI), Johnny Lee (MS-DOS,
Windows 95, NT) ; et Dave Smith (Tandem NSK).
L'auteur du code originel de unzip sur lequel Info-ZIP a été basé est
Samuel H. Smith ; Carl Mascott a fait le premier port sur Unix ; et David P.
Kirschbaum a organisé et conduit Info-ZIP dans les premiers temps avec Keith Petersen
qui hébergeait la liste de diffusion originelle sur WSMR-SimTel20. La liste
complète de contributeurs pour UnZip est devenue assez grande ; veuillez vous
référer au fichier CONTRIBS dans la distribution du source Unzip pour une version
relativement complète.
VERSIONS
- v1.2 15 Mar 89
-
Samuel H. Smith
- v2.0 9 Sep 89
-
Samuel H. Smith
- v2.x fall 1989
-
beaucoup de contributeurs Usenet
- v3.0 1 May 90
-
Info-ZIP (DPK, consolideur)
- v3.1 15 Aug 90
-
Info-ZIP (DPK, consolideur)
- v4.0 1 Dec 90
-
Info-ZIP (GRR, maintenance)
- v4.1 12 May 91
-
Info-ZIP
- v4.2 20 Mar 92
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.0 21 Aug 92
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.01 15 Jan 93
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.1 7 Feb 94
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.11 2 Aug 94
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.12 28 Aug 94
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.2 30 Apr 96
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.3 22 Apr 97
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.31 31 May 97
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.32 3 Nov 97
-
Info-ZIP (Zip-Bugs sous-groupe, GRR)
- v5.4 28 Nov 98
-
Info-ZIP (Zip-Bugs sous-groupe, SPC)
- v5.41 16 Apr 00
-
Info-ZIP (Zip-Bugs sous-groupe, SPC)
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- PARAMÈTRES
-
- OPTIONS
-
- MODIFICATEURS
-
- OPTIONS D'ENVIRONNEMENT
-
- DÉCRYPTAGE
-
- EXEMPLES
-
- CONSEILS
-
- DIAGNOSTICS
-
- BOGUES
-
- VOIR AUSSI
-
- URL
-
- AUTEURS
-
- VERSIONS
-
This document was created by
man2html,
using the manual pages.
Time: 20:42:01 GMT, July 10, 2005