Zipper des fichiers sous Linux les nombreuses variantes et comment les utiliser

Certains d'entre nous compressent des fichiers sur les systèmes Unix et Linux depuis de nombreuses décennies - pour économiser de l'espace disque et empaqueter des fichiers ensemble pour l'archivage. Malgré cela, il existe des variations intéressantes sur la fermeture éclair que nous n'avons pas tous essayées. Donc, dans cet article, nous allons examiner le zip et le dézippage standard ainsi que d'autres options de zipping intéressantes.

[Conseils Linux de deux minutes: apprenez à maîtriser une multitude de commandes Linux dans ces didacticiels vidéo de 2 minutes]

La commande zip de base

Tout d'abord, regardons la base Zip *: français commander. Il utilise ce qui est essentiellement le même algorithme de compression que gzip, mais il y a quelques différences importantes. D'une part, la commande gzip est utilisée uniquement pour compresser un seul fichier où zip peut à la fois compresser des fichiers et les réunir dans une archive. D'autre part, la commande gzip zippe «en place». En d'autres termes, il laisse un fichier compressé - pas le fichier d'origine à côté de la copie compressée. Voici un exemple de gzip au travail:

$ gzip onefile $ ls -l -rw-rw-r-- 1 shs shs 10514 15 janv.13: 13 onefile.gz 

Et voici zip. Remarquez comment cette commande nécessite qu'un nom soit fourni pour l'archive zippée où gzip utilise simplement le nom du fichier d'origine et ajoute l'extension .gz.

$ zip twofiles.zip fichier * ajout: fichier1 (dégonflé 82%) ajout: fichier2 (dégonflé 82%) $ ls -l -rw-rw-r-- 1 shs shs 58021 15 janv. 13:25 file1 -rw-rw- r-- 1 shs shs 58933 15 janv. 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15 janv. 13:35 twofiles.zip 

Notez également que les fichiers d'origine sont toujours là.

La quantité d'espace disque qui est économisée (c'est-à-dire le degré de compression obtenu) dépendra du contenu de chaque fichier. La variation dans l'exemple ci-dessous est considérable.

$ zip mybin.zip ~ / bin / * ajout: bin / 1 (dégonflé 26%) ajout: bin / append (dégonflé 64%) ajout: bin / BoD_meeting (dégonflé 18%) ajout: bin / cpuhog1 (dégonflé 14%) ajout: bin / cpuhog2 (stocké 0%) ajout: bin / ff (dégonflé 32%) ajout: bin / fichier.0 (dégonflé 1%) ajout: bin / boucle (dégonflé 14%) ajout: bin / notes (dégonflé 23 %) ajout: bin / modèles (stocké 0%) ajout: bin / runme (stocké 0%) ajout: bin / tryme (dégonflé 13%) ajout: bin / tt (dégonflé 6%) 

La commande de décompression

le décompresser La commande récupérera le contenu d'un fichier zip et, comme vous vous en doutez probablement, laissera le fichier zip intact, tandis qu'une commande gunzip similaire ne laissera que le fichier non compressé.

$ unzip twofiles.zip Archive: twofiles.zip gonflage: file1 gonflage: file2 $ ls -l -rw-rw-r-- 1 shs shs 58021 15 janv. 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15 janv 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15 janv 13:35 twofiles.zip 

La commande zipcloak

le fermeture éclair La commande crypte un fichier zip, vous invitant à entrer un mot de passe deux fois (pour vous assurer de ne pas le "fat finger") et laisse le fichier en place. Vous pouvez vous attendre à ce que la taille du fichier varie légèrement de l'original.

$ zipcloak twofiles.zip Entrez le mot de passe: Vérifiez le mot de passe: chiffrement: fichier1 chiffrement: fichier2 $ ls -l total 204 -rw-rw-r-- 1 shs shs 58021 15 janv. 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15 janv. 13:34 file2 -rw-rw-r-- 1 shs shs 21313 15 janv. 13:46 twofiles.zip <== slightly larger than unencrypted version 

Gardez à l'esprit que les fichiers d'origine sont toujours non chiffrés.

La commande zipdetails

le zipdétails commande va vous montrer les détails - un lot de détails sur un fichier zippé, probablement beaucoup plus que ce que vous souhaitez absorber. Même si nous examinons un fichier crypté, zipdetails affiche les noms de fichier avec les dates de modification de fichier, les informations sur les utilisateurs et les groupes, les données sur la longueur des fichiers, etc. Gardez à l'esprit que ce sont toutes des "métadonnées". Nous ne voyons pas le contenu des fichiers.

$ zipdetails twofiles.zip 0000 LOCAL HEADER # 1 04034B50 0004 Extraire Zip Spec 14 '2.0' 0005 Extraire OS 00 'MS-DOS' 0006 Drapeau à usage général 0001 [Bit 0] 1 'Cryptage' [Bits 1-2] 1 'Maximum Compression '0008 Méthode de compression 0008' Dégonflé '000A Dernière heure de modification 4E2F6B24' Mar 15 jan 13:25:08 2019 '000E CRC F1B115BD 0012 Longueur compressée 00002904 0016 Longueur non compressée 0000E2A5 001A Longueur du nom de fichier 0005 001C Longueur supplémentaire 001C 001E Nom du fichier' file1 '0023 Extra ID # 0001 5455 'UT: Extended Timestamp' 0025 Length 0009 0027 Flags '03 mod access '0028 Mod Time 5C3E2584' Tue Jan 15 13:25:08 2019 '002C Access Time 5C3E27BB' Tue Jan 15 13:34:35 2019 '0030 Extra ID # 0002 7875' ux: Unix Extra Type 3 '0032 Longueur 000B 0034 Version 01 0035 UID Taille 04 0036 UID 000003E8 003A GID Taille 04 003B GID 000003E8 003F PAYLOAD 2943 LOCAL HEADER # 2 04034B50 2947 Extraire Zip Spec 14' 2.0 '2948 Extraire OS 00' MS-DOS '2949 Drapeau à usage général 0001 [Bit 0] 1' Cryptage '[Bits 1-2] 1' Compression maximale '294B C ompression Method 0008 'Deflated' 294D Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019' 2951 CRC EC214569 2955 Compressed Length 00002913 2959 Uncompressed Length 0000E635 295D Fileename Length 0005 295F Extra Length 001C 2961 Fileename 'file2' 2966 Extra ID # 0001 5455 'UT: Horodatage étendu' 2968 Longueur 0009 296A Drapeaux '03 mod access '296B Mod Time 5C3E27C4' Tue Jan 15 13:34:44 2019 '296F Time Access 5C3E27BD' Tue Jan 15 13:34:37 ​​2019 '2973 Extra ID # 0002 7875 'ux: Unix Extra Type 3' 2975 Longueur 000B 2977 Version 01 2978 UID Taille 04 2979 UID 000003E8 297D GID Taille 04 297E GID 000003E8 2982 CHARGE PAYABLE 5295 EN-TÊTE CENTRALE # 1 02014B50 5299 Créé Zip Spec 1E '3.0' 529A Créé OS 03 'Unix' 529B Extract Zip Spec 14 '2.0' 529C Extract OS 00 'MS-DOS' 529D Flag General Use 0001 [Bit 0] 1 'Encryption' [Bits 1-2] 1 'Maximum Compression' 529F Compression Method 0008 'Dégonflé' 52A1 Dernière modification 4E2F6B24 'Mar 15 janv 13:25:08 2019' 52A5 CRC F1B115BD 52A9 Longueur compressée 00002904 52AD Uncompr essed Longueur 0000E2A5 52B1 Longueur de nom de fichier 0005 52B3 Extra Longueur 0018 52B5 Longueur de commentaire 0000 52B7 Démarrage du disque 0000 52B9 Attributs de fichier int 0001 [Bit 0] 1 Données texte 52BB Attributs de fichier ext 81B40000 52BF Décalage d'en-tête local 00000000 52C3 Nom de fichier 'file1' 52C8 Extra ID # 0001 5455 'UT: horodatage étendu' 52CA longueur 0005 52CC drapeaux '03 mod access '52CD Mod Time 5C3E2584' mar 15 jan 13:25:08 2019 '52D1 Extra ID # 0002 7875' ux: Unix Extra Type 3 '52D3 longueur 000B 52D5 Version 01 52D6 UID Taille 04 52D7 UID 000003E8 52DB GID Taille 04 52DC GID 000003E8 52E0 CENTRAL HEADER # 2 02014B50 52E4 Créé Zip Spec 1E '3.0' 52E5 Créé OS 03 'Unix' 52E6 Extraire Zip Spec 14 '2.0' 52E7 Extrait OS 00 'MS-DOS' 52E8 Drapeau à usage général 0001 [Bit 0] 1 'Cryptage' [Bits 1-2] 1 'Compression maximale' 52EA Méthode de compression 0008 'Dégonflé' 52EC Dernière modification 4E2F6C56 'Mar 15 janvier 13:34:44 2019 '52F0 CRC EC214569 52F4 Longueur compressée 00002913 52F8 Longueur non compressée 0000E635 52FC Longueur du nom de fichier 0005 52FE Longueur supplémentaire 0018 5300 Longueur de commentaire 0000 5302 Démarrage du disque 0000 5304 Attributs de fichier int 0001 [Bit 0] 1 Données texte 5306 Attributs de fichier ext 81B40000 530A Décalage d'en-tête local 00002943 530E Nom de fichier 'fichier2' 5313 ID supplémentaire # 0001 5455 'UT: horodatage étendu' 5315 Longueur 0005 5317 Drapeaux '03 mod access '5318 Mod Time 5C3E27C4' Tue Jan 15 13:34:44 2019 '531C Extra ID # 0002 7875' ux: Unix Extra Type 3 '531E Length 000B 5320 Version 01 5321 UID Size 04 5322 UID 000003E8 5326 GID Taille 04 5327 GID 000003E8 532B END CENTRAL HEADER 06054B50 532F Numéro de ce disque 0000 5331 Central Dir Disk no 0000 5333 Entrées dans ce disque 0002 5335 Total Entries 0002 5337 Taille de Central Dir 00000096 533B Décalage vers Central Dir 00005295 533F Commentaire Commentaire Longueur 0000 Terminé 

La commande zipgrep

le zipgrep La commande va utiliser une fonctionnalité de type grep pour localiser un contenu particulier dans vos fichiers zippés. Si le fichier est crypté, vous devrez entrer le mot de passe fourni pour le cryptage pour chaque fichier que vous souhaitez examiner. Si vous souhaitez uniquement vérifier le contenu d'un seul fichier de l'archive, ajoutez son nom à la fin de la commande zipgrep comme indiqué ci-dessous.

$ zipgrep hazard twofiles.zip fichier1 [twofiles.zip] fichier1 mot de passe: Certains pesticides doivent être interdits car ils sont dangereux pour l'environnement. 

La commande zipinfo

le zipinfo La commande fournit des informations sur le contenu d'un fichier compressé, crypté ou non. Cela inclut les noms de fichiers, les tailles, les dates et les autorisations.

$ zipinfo twofiles.zip Archive: twofiles.zip Taille du fichier zip: 21313 octets, nombre d'entrées: 2 -rw-rw-r-- 3.0 unx 58021 Tx defN 19-Jan-15 13:25 file1 -rw-rw-r - 3.0 unx 58933 Tx defN 19-Jan-15 13:34 file2 2 files, 116954 octets non compressés, 20991 octets compressés: 82,1% 

La commande zipnote

le zipnote La commande peut être utilisée pour extraire des commentaires des archives zip ou les ajouter. Pour afficher les commentaires, il suffit de faire précéder le nom de l'archive avec la commande. Si aucun commentaire n'a été ajouté précédemment, vous verrez quelque chose comme ceci:

$ zipnote twofiles.zip @ file1 @ (commentaire au dessus de cette ligne) @ file2 @ (commentaire au dessus de cette ligne) @ (zip file comment en dessous de cette ligne) 

Si vous souhaitez ajouter des commentaires, écrivez la sortie de la commande zipnote dans un fichier:

$ zipnote twofiles.zip> commentaires 

Ensuite, modifiez le fichier que vous venez de créer, en insérant vos commentaires au-dessus du (commentaire au dessus de cette ligne) lignes. Ajoutez ensuite les commentaires à l'aide d'une commande zipnote comme celle-ci:

$ zipnote -w twofiles.zip < comments 

La commande zipsplit

le zipsplit La commande peut être utilisée pour diviser une archive zip en plusieurs archives zip lorsque le fichier d'origine est trop volumineux - peut-être parce que vous essayez d'ajouter l'un des fichiers à une petite clé USB. La façon la plus simple de procéder semble être de spécifier la taille maximale pour chacune des parties de fichier zippées. Cette taille doit être suffisamment grande pour accueillir le plus gros fichier inclus.

$ zipsplit -n 12000 twofiles.zip 2 fichiers zip seront créés (100% d'efficacité) création: twofile1.zip création: twofile2.zip $ ls twofile * .zip -rw-rw-r-- 1 shs shs 10697 15 janv. 14 14 : 52 twofile1.zip -rw-rw-r-- 1 shs shs 10702 15 janv. 14:52 twofile2.zip -rw-rw-r-- 1 shs shs 21377 15 janv. 14:27 twofiles.zip 

Remarquez comment les fichiers extraits sont nommés séquentiellement "twofile1" et "twofile2".

Emballer

le Zip *: français La commande, ainsi que certains de ses compatriotes zippés, fournissent beaucoup de contrôle sur la façon dont vous générez et travaillez avec des archives de fichiers compressés.

[Voir aussi: Trucs et astuces inestimables pour dépanner Linux] Rejoignez les communautés Network World sur Facebook et LinkedIn pour commenter des sujets qui vous tiennent à cœur.