
Les fichiers ZIP sont un fichier universel couramment utilisé sur les systèmes Windows, macOS et Linux inclus. Vous pouvez créer un fichier zip ou décompresser des fichiers à partir d'un fichier avec certaines commandes de terminal Linux courantes.
Le format de fichier compressé ZIP
Grâce à la prédominance du format ZIP dans l'environnement Windows, Les fichiers ZIP sont probablement la forme d'archive compressée la plus courante au monde.
Alors que les fichiers .tar.gz et tar.bz2 sont courants sur Linux, Les utilisateurs de Windows vous enverront probablement un fichier ZIP. ET, si vous souhaitez archiver certains fichiers et les envoyer à un utilisateur Windows, Le format ZIP sera la solution la plus simple et la plus compatible pour tout le monde.
EN RELATION: Comment extraire des fichiers d'un fichier .tar.gz ou .tar.bz2 sous Linux
Zip *: français, unzip et autres utilitaires
Vous savez peut-être déjà que les systèmes d'exploitation de type Linux et Unix, comme macOS, ils ont des outils qui vous permettent de créer des archives ZIP et d'en extraire des archives, appelé zip
et unzip
. Mais il existe toute une famille d'utilitaires connexes, Quoi zipcloak
, zipdetails
, zipsplit
, et zipinfo
.
Nous avons vérifié certaines distributions Linux pour voir si elles incluaient ces utilitaires dans l'installation standard. Tous les utilitaires étaient présents dans Ubuntu 19.04, 18.10 et 18.04. Ils étaient également présents à Manjaro 18.04. Feutre 29 inclus zip
et unzip
, mais aucun des autres utilitaires et c'était aussi le cas pour CentOS.
Pour installer les éléments manquants dans Fedora 29, utilisez la commande suivante:
sudo dnf installer perl-IO-Compress
Pour installer les éléments manquants dans CentOS 7, utilisez la commande suivante:
sudo yum installer perl-IO-compress
Si l'un des utilitaires zip est manquant sur une distribution Linux non mentionnée ci-dessus, utilisez l'outil de gestion de packages de cette distribution Linux pour installer le package requis.
Comment créer un fichier ZIP avec la commande zip
Pour créer un fichier ZIP, doit indiquer zip
le nom du fichier d'archive et les fichiers à y inclure. Vous n’avez pas besoin d’ajouter l’extension “.Zip *: français” au nom du fichier, mais ça ne fait pas de mal si tu le fais.
Pour créer un fichier appelé source_code.zip
qui contient tous les fichiers source C et les fichiers d'en-tête dans le répertoire actuel, j'utiliserais cette commande:
code_source zip *.c *.h
Chaque fichier est répertorié au fur et à mesure de son ajout. Le nom du fichier et la quantité de compression qui a été réalisée sur ce fichier sont affichés.
Si vous regardez le nouveau fichier ZIP, vous pouvez voir que l’extension de fichier “.Zip *: français” a été ajouté automatiquement par zip
.
ls -l code_source.zip
Si vous ne voulez pas voir la sortie de zip
au fur et à mesure que le fichier ZIP est créé, Utilisez le -q
Option (silencieux).
zip -q code_source *.c *.h
Inclure les répertoires dans les fichiers ZIP
Pour inclure des sous-répertoires dans le fichier ZIP, Utilisez le -r
(récursif) et inclure le nom du sous-répertoire dans la ligne de commande. Pour créer un fichier ZIP comme avant et inclure également le sous-répertoire du fichier, utilise cette commande.
zip -r -q archive_code_source/ *.c *.h
Être respectueux de la personne qui extraira les fichiers de l'archive ZIP que vous créez, il est souvent de bonne manière de créer des archives ZIP avec les fichiers dans un répertoire. Lorsque la personne qui reçoit le fichier ZIP l'extrait, tous les fichiers sont soigneusement placés dans un répertoire sur votre ordinateur.
Dans la commande suivante, nous allons archiver le work
répertoire et tous les sous-répertoires. Notez que cette commande est émise à partir du Dossier Parent de lui work
dossier.
zip -r -q code_source travail/
Réglage du niveau de compression
Vous pouvez définir le niveau de compression appliqué aux fichiers lorsqu'ils sont ajoutés à l'archive ZIP. La gamme est 0 une 9, étant 0 sans aucune compression. Plus la compression est élevée, plus de temps prendra pour créer le fichier ZIP. Pour les fichiers ZIP de taille modeste, le décalage horaire n'est pas une pénalité significative. Mais alors, pour les fichiers ZIP de taille modeste, la compression par défaut (niveau 6) c'est probablement assez bon de toute façon.
Arriver zip
utiliser un niveau de compression spécifique, passer le numéro en option sur la ligne de commande, avec un “-“, Donc:
Zip *: français -0 -r -q code_source travail/
Le niveau de compression par défaut est 6. Vous n'avez pas besoin de fournir le -6
option, mais ça ne fera pas de mal si tu le fais.
zip -r -q code_source travail/
Le niveau maximum de compression est le niveau 9.
Zip *: français -9 -r -q code_source travail/
Avec la sélection de fichiers et de répertoires qui sont archivés ici, la différence entre pas de compression (niveau 0) et la compression par défaut (niveau 6) il 400K. La différence entre la compression par défaut et le niveau de compression le plus élevé (niveau 9) c'est seulement 4K.
Cela peut sembler peu, mais pour les fichiers contenant des centaines voire des milliers de fichiers, la petite quantité de compression supplémentaire par fichier représenterait un gain d'espace intéressant.
Ajouter des mots de passe aux fichiers ZIP
L'ajout de mots de passe aux fichiers ZIP est facile. Utilisez le -e
(Crypter) et il vous sera demandé d'entrer votre mot de passe et de le ressaisir pour vérification.
zip -e -r -q code_source travail/
Comment décompresser un fichier ZIP avec la commande unzip
Pour extraire les fichiers d'une archive ZIP, utilisez la commande unzip et fournissez le nom du fichier ZIP. Veuillez noter que vous faire vous devez fournir la prolongation “.Zip *: français”.
décompresser code_source.zip
Au fur et à mesure que les fichiers sont extraits, sont répertoriés dans la fenêtre du terminal.
Les fichiers ZIP ne contiennent pas de détails sur la propriété du fichier. Tous les fichiers qui sont extraits ont le propriétaire défini sur l'utilisateur qui les a extraits.
Comme zip
, unzip
il a un -q
(silencieux), vous n'avez donc pas besoin de voir la liste des fichiers au fur et à mesure qu'ils sont extraits.
unzip -q code_source.zip
Extraire les fichiers dans un répertoire de destination
Pour extraire les fichiers dans un répertoire spécifique, utiliser el -d
(annuaire) et fournissez le chemin vers le répertoire où vous souhaitez extraire le fichier.
unzip -q code_source.zip -d ./development
Extraire les fichiers ZIP protégés par mot de passe
Si un fichier ZIP a été créé avec un mot de passe, unzip
il demandera le mot de passe. Si vous ne fournissez pas le bon mot de passe, unzip
n'extraire pas les fichiers.
unzip -q code_source.zip
Si cela ne vous dérange pas que d'autres personnes voient votre mot de passe, il n'est pas non plus stocké dans l'historique de vos commandes, vous pouvez fournir le mot de passe sur la ligne de commande avec le -P
(le mot de passe) option. (Vous devez utiliser un “P” lettre capitale)
unzip -P cinquante.treacle.cutlass -q code_source.zip
Exclure des fichiers
Si vous ne souhaitez pas extraire un fichier ou un groupe de fichiers particulier, Utilisez le -x
(effacer) option. Dans cet exemple, nous voulons extraire tous les fichiers sauf ceux qui se terminent par une extension “.h”.
unzip -q code_source.zip -x *.h
Écrasement de fichier
Supposons que vous ayez extrait un fichier, mais vous avez supprimé certains des fichiers extraits par erreur.
Une solution rapide pour cela serait d'extraire les fichiers une fois de plus. Mais si vous essayez d'extraire le fichier ZIP dans le même répertoire qu'avant, unzip
vous demandera une décision sur l'écrasement des fichiers. Vous vous attendez à l'une des réponses suivantes.
En dehors de r
(Renommer) réponse, ces réponses sont sensibles à la casse.
- et: Oui, écraser ce fichier
- Nord: Non, ne pas écraser ce fichier
- UNE: Tout, écraser tous les fichiers
- NORD: Rien, n'écrase aucun des fichiers
- r: Changer le nom, extraire ce fichier mais lui donner un nouveau nom. Vous serez invité à entrer un nouveau nom.
Forcer unzip
pour écraser tout fichier existant, utilisez le -o
(écraser) option.
unzip -o -q code_source.zip
Le moyen le plus efficace de remplacer les fichiers manquants serait d'avoir unzip
Extraire uniquement les fichiers de l'archive qui sont non dans le répertoire de destination. Pour faire ceci, utiliser el -n
(ne jamais écraser) option.
unzip -n code_source.zip
Regardez à l'intérieur d'un fichier ZIP
Il est souvent utile et instructif d'afficher une liste des fichiers contenus dans un fichier ZIP avant de l'extraire.. Vous pouvez le faire avec le -l
(liste de fichiers) option. Il est canalisé par less
pour que la sortie soit gérable.
unzip -l code_source.zip | moins
La sortie affiche les répertoires et les fichiers dans le fichier ZIP, leur longueur et la date et l'heure à laquelle ils ont été ajoutés au fichier. presse “q” à présent. less
.
Il existe d'autres façons de regarder à l'intérieur d'un fichier ZIP qui donnent différents types d'informations, comment verrons-nous.
Ajouter un mot de passe avec la commande zipcloak
Si vous avez créé un fichier ZIP mais avez oublié d'ajouter un mot de passe, que vous pouvez faire? Vous pouvez rapidement ajouter un mot de passe au fichier ZIP en utilisant le zipcloak
commander. Passer le nom du fichier ZIP dans la ligne de commande. Un mot de passe vous sera demandé. Vous devez vérifier le mot de passe en le saisissant une seconde fois.
zipcloak code_source.zip
Afficher les détails du fichier avec la commande zipdetails
Les zipdetails
La commande vous montrera un grouper informations sur le fichier ZIP. La seule façon sensée de gérer la quantité de sortie que cette commande peut donner est de la diriger less
.
zipdétails code_source.zip | moins
Veuillez noter que les informations incluront les noms de fichiers même si le fichier ZIP est protégé par mot de passe. Ce type d'informations est stocké dans le fichier ZIP en tant que métadonnées et ne fait pas partie des données cryptées..
Rechercher dans l'archive avec la commande zipgrep
Les zipgrep
La commande permet de rechercher à l'intérieur des fichiers dans un fichier ZIP. Dans l'exemple suivant, nous voulons savoir quels fichiers dans le fichier ZIP ont le texte “keyval.h” en eux.
zipgrep keyval.h code_source.zip
On voit que les fichiers slang.c
et getval.c
contenir la chaîne "keyval.h". On peut aussi voir qu'il y a deux copies de chacun de ces fichiers dans des répertoires différents du fichier ZIP.
Afficher les informations avec la commande zipinfo
Les zipinfo
La commande vous donne une autre façon de regarder à l'intérieur d'un fichier ZIP. Comme avant, nous canalisons la sortie à travers less
.
zipinfo source_code.zip | moins
De gauche à droite, la sortie montre:
- Autorisations de fichier
- La version de l'outil utilisé pour créer le fichier ZIP
- La taille du fichier d'origine
- Un descripteur de fichier (Décrit ci-dessous)
- La méthode de compression (déflation, dans ce cas)
- L'horodatage et les données
- Le nom du fichier et de tout répertoire
Le descripteur de fichier se compose de deux caractères. Le premier caractère sera un “t” ou un “b” pour indiquer un fichier texte ou binaire. Si c'est une majuscule, le fichier est crypté. Le deuxième caractère peut être l'un des quatre caractères. Ce caractère représente le type de métadonnées inclus pour ce fichier: rien, un en-tête local étendu, un “champ supplémentaire” les deux.
- -: Si aucun n'existe, le personnage sera un tiret.
- je: s'il y a un en-tête local étendu mais pas de champ supplémentaire
- X: s'il n'y a pas d'en-tête local étendu mais qu'il y a un champ supplémentaire
- X: s'il existe un en-tête local étendu et un champ supplémentaire
Divisez le fichier avec la commande zipsplit
Si vous devez envoyer le fichier ZIP à quelqu'un d'autre mais qu'il existe des restrictions de taille ou des problèmes de transmission du fichier, vous pouvez utiliser le zipsplit
commande pour diviser le fichier ZIP d'origine en un ensemble de fichiers ZIP plus petits.
Les -n
L'option (Taille) vous permet de définir une taille maximale pour chacun des nouveaux fichiers ZIP. Dans cet exemple, nous divisons le source_code.zip
Record. Nous ne voulons pas que les nouveaux fichiers ZIP dépassent le 100 Ko (102400 octets).
zipsplit -n 102400 code_source.zip
La taille que vous choisissez ne peut pas être inférieure à la taille de l'un des fichiers du fichier ZIP.
Avec ces commandes, vous pouvez créer vos propres fichiers ZIP, décompressez les fichiers ZIP que vous recevez et effectuez d'autres opérations dessus sans quitter le terminal Linux.
setTimeout(fonction(){
!fonction(F,b,e,v,m,t,s)
{si(f.fbq)revenir;n=f.fbq=fonction(){n.callMethod?
n.callMethod.apply(m,arguments):n.queue.push(arguments)};
si(!f._fbq)f._fbq=n;n.push=n;n.chargé=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertAvant(t,s) } (window, document,'scénario',
'https://connect.facebook.net/en_US/fbevents.js’);
fbq('init', « 335401813750447 »);
fbq('Piste', « Page View »);
},3000);