Zipper filer på Linux på mange varianter og hvordan du bruker dem

Noen av oss har zippet filer på Unix og Linux-systemer i mange tiår - for å spare diskplass og pakkefiler sammen for arkivering. Likevel er det noen interessante varianter på glidelås som ikke alle av oss har prøvd. Så i dette innlegget skal vi se på standard glidelås og unzipping samt noen andre interessante glidelåsalternativer.

[To-minutters Linux-tips: Lær hvordan du mestrer en rekke Linux-kommandoer i disse 2-minutts videoopplæringen]

Den grunnleggende zip-kommandoen

La oss først se på det grunnleggende glidelås kommando. Den bruker det som egentlig er den samme komprimeringsalgoritmen som gzip, men det er et par viktige forskjeller. For det første brukes gzip-kommandoen bare til å komprimere en enkelt fil der zip både kan komprimere filer og knytte dem sammen til et arkiv. For en annen glipper gzip-kommandoen “på plass”. Med andre ord etterlater den en komprimert fil - ikke den originale filen ved siden av den komprimerte kopien. Her er et eksempel på gzip på jobb:

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

Og her er zip. Legg merke til hvordan denne kommandoen krever at det gis et navn til det zippede arkivet der gzip ganske enkelt bruker det originale filnavnet og legger til .gz-utvidelsen.

$ zip twofiles.zip fil * legge til: file1 (deflated 82%) legge til: file2 (deflated 82%) $ ls -l -rw-rw-r-- 1 shs shs 58021 15. jan 13:25 file1 -rw-rw- r-- 1 shs shs 58933 15. jan 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15. jan 13:35 twofiles.zip 

Legg også merke til at originalfilene fremdeles sitter der.

Mengden diskplass som er lagret (dvs. oppnådd komprimeringsgrad) vil avhenge av innholdet i hver fil. Variasjonen i eksemplet nedenfor er betydelig.

$ zip mybin.zip ~ / bin / * legger til: bin / 1 (deflated 26%) legger til: bin / append (deflated 64%) legger til: bin / BoD_meeting (deflated 18%) legger til: bin / cpuhog1 (deflated 14%) legger til: bin / cpuhog2 (lagret 0%) legger til: bin / ff (deflated 32%) legger til: bin / file.0 (deflated 1%) legger til: bin / loop (deflated 14%) legger til: bin / notes (deflated 23 %) legger til: bin / mønstre (lagret 0%) legger til: bin / runme (lagret 0%) legger til: bin / tryme (deflated 13%) legger til: bin / tt (deflated 6%) 

Unzip-kommandoen

De unzip kommando vil gjenopprette innholdet fra en zip-fil, og som du sannsynligvis vil mistenke, la zip-filen være intakt, mens en lignende gunzip-kommando bare vil forlate den ukomprimerte filen.

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

Zipcloak-kommandoen

De zipcloak kommandoen krypterer en zip-fil, og ber deg om å oppgi et passord to ganger (for å sikre at du ikke "fetter fingeren") og lar filen være på plass. Du kan forvente at filstørrelsen vil variere litt fra originalen.

$ zipcloak twofiles.zip Angi passord: Bekreft passord: kryptering: file1 kryptering: file2 $ ls -l totalt 204 -rw-rw-r-- 1 shs shs 58021 15. jan 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15. jan 13:34 file2 -rw-rw-r-- 1 shs shs 21313 15. jan 13:46 twofiles.zip <== slightly larger than unencrypted version 

Husk at de originale filene fremdeles sitter der ukryptert.

Zipdetails-kommandoen

De zipdetails kommandoen skal vise deg detaljer - a mye av detaljer om en zip-fil, sannsynligvis mye mer enn du vil ta til deg. Selv om vi ser på en kryptert fil, viser zipdetails filnavnene sammen med filendringsdatoer, bruker- og gruppeinformasjon, fillengdedata, etc. Husk at alt dette er "metadata." Vi ser ikke innholdet i filene.

$ zipdetails twofiles.zip 0000 LOCAL HEADER # 1 04034B50 0004 Extract Zip Spec 14 '2.0' 0005 Extract OS 00 'MS-DOS' 0006 General Purpose Flag 0001 [Bit 0] 1 'Encryption' [Bits 1-2] 1 'Maximum Komprimering '0008 Komprimeringsmetode 0008' Deflatert '000A Siste modetid 4E2F6B24' Tirs 15. jan 13:25:08 2019 '000E CRC F1B115BD 0012 Komprimert lengde 00002904 0016 Ukomprimert lengde 0000E2A5 001A Filnavn Lengde 0005 001C Ekstra lengde 001C 001E Filnavn 23 fil1 00 Ekstra ID # 0001 5455 'UT: Utvidet tidsstempel' 0025 Lengde 0009 0027 Flagg '03 mod tilgang '0028 Mod Tid 5C3E2584' Tirs 15 jan 13:25:08 2019 '002C Tilgangstid 5C3E27BB' ti 15. jan 13:34:35 2019 '0030 Extra ID # 0002 7875' ux: Unix Extra Type 3 '0032 Lengde 000B 0034 Versjon 01 0035 UID Størrelse 04 0036 UID 000003E8 003A GID Størrelse 04 003B GID 000003E8 003F BETALING 2943 LOCAL HEADER # 2 04034B50 2947 Extract Zip Spec 14' 2.0 '2948 Extract OS 00' MS-DOS '2949 General Purpose Flag 0001 [Bit 0] 1' Kryptering '[Bits 1-2] 1' Maksimal komprimering '294B C ompression Method 0008 'Deflated' 294D Last Mod Time 4E2F6C56 'Tue Jan 15 13:34:44 2019' 2951 CRC EC214569 2955 Komprimert lengde 00002913 2959 Ukomprimert lengde 0000E635 295D Filnavn Lengde 0005 295F Extra Length 001C 2961 Filename 'file2' 2966 Extra ID # 0001 5455 'UT: Extended Timestamp' 2968 Length 0009 296A Flags '03 mod access '296B Mod Time 5C3E27C4' Tue 15. jan 13:34:44 2019 '296F Access Time 5C3E27BD' Tue 15 jan 13:34:37 ​​2019 '2973 Extra ID # 0002 7875 'ux: Unix Extra Type 3' 2975 Lengde 000B 2977 Versjon 01 2978 UID Størrelse 04 2979 UID 000003E8 297D GID Størrelse 04 297E GID 000003E8 2982 BETALING 5295 CENTRAL HEADER # 1 02014B50 5299 Opprettet Zip Spec 1E '3.0' 529A Opprettet OS 03 'Unix' 529B Extract Zip Spec 14 '2.0' 529C Extract OS 00 'MS-DOS' 529D General Purpose Flag 0001 [Bit 0] 1 'Encryption' [Bits 1-2] 1 'Maximum Compression' 529F Compression Method 0008 'Deflated' 52A1 Siste modetid 4E2F6B24 'Tir 15. jan 13:25:08 2019' 52A5 CRC F1B115BD 52A9 komprimert lengde 00002904 52AD Uncompr essed Lengde 0000E2A5 52B1 Filnavn Lengde 0005 52B3 Ekstra lengde 0018 52B5 Kommentar Lengde 0000 52B7 Disk Start 0000 52B9 Int Fil Attributter 0001 [Bit 0] 1 Tekstdata 52BB Ext File Attributter 81B40000 52BF Lokal Header Offset 00000000 52C3 Filnavn 'fil1' 52C8 Extra ID # 0001 5455 'UT: Extended Timestamp' 52CA Length 0005 52CC Flags '03 mod access '52CD Mod Time 5C3E2584' Tir 15 jan 13:25:08 2019 '52D1 Extra ID # 0002 7875' ux: Unix Extra Type 3 '52D3 Length 000B 52D5 versjon 01 52D6 UID størrelse 04 52D7 UID 000003E8 52DB GID størrelse 04 52DC GID 000003E8 52E0 CENTRAL HEADER # 2 02014B50 52E4 Created Zip Spec 1E '3.0' 52E5 Created OS 03 'Unix' 52E6 Extract Zip Spec 14 '2.0' 52E7 Extract OS 00 'MS-DOS' 52E8 Generelt formål Flagg 0001 [Bit 0] 1 'Kryptering' [Bits 1-2] 1 'Maksimal komprimering' 52EA Komprimeringsmetode 0008 'Deflatert' 52EC Siste modetid 4E2F6C56 'Tirs 15 jan 13:34:44 2019 '52F0 CRC EC214569 52F4 komprimert lengde 00002913 52F8 Ukomprimert lengde 0000E635 52FC Filnavn Lengde 0005 52FE Ekstra lengde 0018 5300 Kommentarlengde 0000 5302 Diskstart 0000 5304 Int-filattributter 0001 [Bit 0] 1 Tekstdata 5306 Ext File Attributter 81B40000 530A Lokal headset-offset 00002943 530E Filnavn 'file2' 5313 Ekstra ID # 0001 5455 'UT: Utvidet tidsstempel' 5315 Lengde 0005 5317 Flagg '03 mod tilgang '5318 Mod Tid 5C3E27C4' Tirs 15. jan 13:34:44 2019 '531C Ekstra ID # 0002 7875' ux: Unix Extra Type 3 '531E Lengde 000B 5320 Versjon 01 5321 UID Størrelse 04 5322 UID 000003E8 5326 GID Størrelse 04 5327 GID 000003E8 532B END CENTRAL HEADER 06054B50 532F Nummer på denne disken 0000 5331 Central Dir Disk nr 0000 5333 Oppføringer på denne disken 0002 5335 Totalt oppføringer 0002 5337 Størrelse på Central Dir 00000096 533B Offset til Central Dir 00005295 533F Kommentar Lengde 0000 Ferdig 

Zipgrep-kommandoen

De zipgrep kommandoen kommer til å bruke en grep-funksjon for å finne bestemt innhold i zip-filene dine. Hvis filen er kryptert, må du oppgi passordet som er gitt for krypteringen for hver fil du vil undersøke. Hvis du bare vil sjekke innholdet i en enkelt fil fra arkivet, legger du navnet til slutten av zipgrep-kommandoen som vist nedenfor.

$ zipgrep fare twofiles.zip file1 [twofiles.zip] file1 passord: Visse plantevernmidler bør forbys siden de er miljøfarlige. 

ZIPinfo-kommandoen

De zipinfo kommando gir informasjon om innholdet i en zip-fil, enten kryptert eller ikke. Dette inkluderer filnavn, størrelser, datoer og tillatelser.

$ zipinfo twofiles.zip Arkiv: twofiles.zip ZIP-filstørrelse: 21313 byte, antall oppføringer: 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 filer, 116954 bytes ukomprimert, 20991 bytes komprimert: 82,1% 

Postnummerkommandoen

De zipnote kommando kan brukes til å trekke ut kommentarer fra zip-arkiver eller legge dem til. For å vise kommentarer, forhåndsvis bare navnet på arkivet med kommandoen. Hvis det ikke er lagt til noen kommentarer tidligere, vil du se noe slikt:

$ zipnote twofiles.zip @ file1 @ (kommentar over denne linjen) @ file2 @ (kommentar over denne linjen) @ (zip-filkommentar under denne linjen) 

Hvis du vil legge til kommentarer, skriver du output fra zipnote-kommandoen til en fil:

$ zipnote twofiles.zip> kommentarer 

Deretter rediger du filen du nettopp har opprettet, og legg inn kommentarene over (kommentar over denne linjen) linjer. Legg deretter til kommentarene ved å bruke en zipnote-kommando som denne:

$ zipnote -w twofiles.zip < comments 

Zipsplit-kommandoen

De zipsplit kommando kan brukes til å dele et zip-arkiv i flere zip-arkiver når den originale filen er for stor - kanskje fordi du prøver å legge en av filene til en liten tommelstasjon. Den enkleste måten å gjøre dette ser ut til å være å spesifisere maksimal størrelse for hver av de glidelåtte fildelene. Denne størrelsen må være stor nok til å imøtekomme den største inkluderte filen.

$ zipsplit -n 12000 twofiles.zip 2 zip-filer vil bli laget (100% effektivitet) skaper: twofile1.zip oppretting: twofile2.zip $ ls twofile * .zip -rw-rw-r-- 1 shs shs 10697 15. januar 14 : 52 twofile1.zip -rw-rw-r-- 1 shs shs 10702 15. jan 14:52 twofile2.zip -rw-rw-r-- 1 shs shs 21377 15. jan 14:27 twofiles.zip 

Legg merke til hvordan de ekstraherte filene sekvensielt heter "twofile1" og "twofile2".

Wrap-up

De glidelås kommandoen, sammen med noen av dens glidelås-landsmenn, gir mye kontroll over hvordan du genererer og jobber med komprimerte filarkiver.

[Se også: Uvurderlige tips og triks for feilsøking av Linux] Bli med i Network World-samfunnene på Facebook og LinkedIn for å kommentere temaer som er uten oppmerksomhet.