Fájlok tömörítése vagy kibontása a Linux terminálról

A ZIP fájlok univerzális archívumok, amelyeket általában használnak Windows, MacOS és még Linux rendszereken is. Létrehozhat egy ZIP-archívumot, vagy kibonthatja a fájlokat egy-egy általános Linux terminálparancs segítségével.

A ZIP tömörített archív fájlformátum

A ZIP-formátum dominanciájának köszönhetően a Windows birodalmában a ZIP-fájlok valószínűleg a tömörített archívumok leggyakoribb formája a világon.

Míg a .tar.gz és a tar.bz2 fájlok elterjedtek a Linuxon, a Windows felhasználók valószínűleg ZIP formátumú archívumot küldenek Önnek. És ha archiválni akar néhány fájlt, és el akarja küldeni őket egy Windows-felhasználónak, akkor a ZIP formátum lesz a legegyszerűbb, leginkább kompatibilis megoldás mindenki számára.

KAPCSOLÓDÓ: Hogyan lehet kibontani a fájlokat .tar.gz vagy .tar.bz2 fájlokból Linux rendszeren

zip, unzip és egyéb segédprogramok

Lehet, hogy már tudjuk, hogy a Linux és Unix-szerű operációs rendszerek, mint a MacOS olyan eszközök, amelyek lehetővé teszik, hogy a ZIP fájlok és kivonat fájlokat őket, az úgynevezett zipés unzip. De van egy egész családnak kapcsolódó segédprogramok, mint például zipcloak, zipdetails, zipsplités zipinfo.

Megnéztünk néhány Linux disztribúciót, hogy megvizsgálják, hogy ezek a segédprogramok beépültek-e a szokásos telepítésbe. Az összes segédprogram jelen volt az Ubuntu 19.04, 18.10 és 18.04 verzióiban. Jelen voltak Manjaro 18.04-ben is. A Fedora 29 tartalmazta zipés unzip, de a többi segédprogramot nem, és ez a CentOS esetében is így volt.

A hiányzó elemek telepítéséhez a Fedora 29-re használja a következő parancsot:

sudo dnf telepítse a perl-IO-Compress programot

A hiányzó elemek telepítéséhez a CentOS 7-re használja a következő parancsot:

sudo yum telepítse a perl-IO-Compress programot

Ha a zip segédprogramok bármelyike ​​hiányzik a Linux-disztribúcióból, amelyet nem említettünk, használja a Linux disztribúció csomagkezelő eszközét a szükséges csomag telepítéséhez.

ZIP-fájl létrehozása a zip paranccsal

ZIP-fájl létrehozásához meg kell mondania zipaz archív fájl nevét és a benne lévő fájlokat. Nem kell hozzáadnia a .zip kiterjesztést az archív névhez, de nem árt, ha mégis.

Az source_code.zipaktuális könyvtár összes C forráskód- és fejlécfájlját tartalmazó nevű fájl létrehozásához ezt a parancsot kell használnia:

zip forrás_kód * .c * .h

Minden fájl a hozzáadásukkor jelenik meg. Megjelenik a fájl neve és a fájl tömörítésének mértéke.

Ha megnézi az új ZIP archívumot, láthatja, hogy a .zip fájlkiterjesztést automatikusan hozzáadta zip.

ls -l forrás_kód.zip

Ha nem szeretné látni a kimenetet zipa ZIP fájl létrehozásakor, használja a -q(csendes) opciót.

zip -q forrás_kód * .c * .h

Könyvtárakat is beleértve a ZIP fájlokban

Alkönyvtárak felvételéhez a ZIP fájlba használja a -r(rekurzív) opciót, és a parancssorba írja be az alkönyvtár nevét. Használja ezt a parancsot egy korábbi ZIP-fájl létrehozásához és az archív alkönyvtár beillesztéséhez is.

zip -r -q forrás_kód archívum / * .c * .h

Figyelemre méltó azzal a személlyel szemben, aki kibontja a fájlokat az Ön által létrehozott ZIP fájlból, gyakran udvarias, ha ZIP fájlokat hozunk létre a könyvtárban található fájlokkal együtt. Amikor a ZIP fájlt megkapó személy kivonja azt, az összes fájl szépen a számítógépén található könyvtárba kerül.

A következő parancsban archiválni fogjuk a workkönyvtárat és az összes alkönyvtárat. Vegye figyelembe, hogy ezt a parancsot a mappa szülőkönyvtárából adják ki work.

zip -r -q forrás_kód munka /

A tömörítés szintjének beállítása

Beállíthatja, hogy a ZIP-archívumba való felvételkor mekkora tömörítést alkalmazzanak a fájlok. A tartomány 0 és 9 között van, a 0 pedig egyáltalán nem tömörítés. Minél nagyobb a tömörítés, annál hosszabb ideig tart létrehozni a ZIP fájlt. Szerény méretű ZIP fájlok esetében az időeltolódás nem jelent jelentős büntetést. De akkor szerény méretű ZIP fájlok esetén az alapértelmezett tömörítés (6. szint) valószínűleg amúgy is elég jó.

Ahhoz, hogy ziphasználni egy bizonyos szintű tömörítés, add meg a számot, mint egy lehetőséget a parancssorban, a „-”, mint ez:

zip -0 -r -q forrás_kód munka /

Az alapértelmezett tömörítési szint 6. Nem szükséges megadni az -6opciót, de nem árt, ha mégis.

zip -r -q forrás_kód munka /

A maximális tömörítési szint 9. szint.

zip -9 -r -q forrás_kód munka /

Az itt archivált fájlok és könyvtárak kiválasztásával a tömörítés nélküli (0. szint) és az alapértelmezett tömörítés (6. szint) közötti különbség 400K. Az alapértelmezett tömörítés és a legmagasabb tömörítési szint (9. szint) közötti különbség csak 4K.

Ez nem tűnhet soknak, de több száz vagy akár több ezer fájlt tartalmazó archívumok esetében a fájlonkénti kis tömörítés jelentős helyet takarít meg.

Jelszavak hozzáadása a ZIP fájlokhoz

Jelszavak hozzáadása a ZIP fájlokhoz egyszerű. Használja a -e(titkosítás) opciót, és a rendszer kéri, hogy adja meg a jelszavát, és adja meg újra ellenőrzés céljából.

zip -e -r -q forrás_kód munka /

ZIP-fájl kicsomagolása a kicsomagolás paranccsal

A fájlok ZIP fájlból történő kibontásához használja az unzip parancsot, és adja meg a ZIP fájl nevét. Figyeljük meg, hogy tenni kell biztosítani a „.zip” kiterjesztést.

kicsomagolja a forrás_kódot

A fájlok kibontásakor felkerülnek a terminál ablakára.

A ZIP fájlok nem tartalmazzák a fájl tulajdonjogának részleteit. Az összes kibontott fájl tulajdonosát a kibontó felhasználóhoz kell beállítani.

Csakúgy, mint zip, unzip egy -q(csendes) opciót, így nem kell, hogy a fájl felsorolja a fájlok kibontásakor.

unzip -q forrás_kód.zip

Fájlok kibontása egy célkönyvtárba

Ha a fájlokat egy adott könyvtárban szeretné kibontani, használja a -d(könyvtár) opciót, és adja meg annak a könyvtárnak az elérési útját, amelybe az archívumot kibontja.

unzip -q forrás_kód.zip -d ./development

Csomagolja ki a jelszóval védett ZIP fájlokat

Ha ZIP-fájlt hoztak létre jelszóval, unzipakkor kérni fogja a jelszót. Ha nem a megfelelő jelszót adja meg,  unzipakkor nem vonja ki a fájlokat.

unzip -q forrás_kód.zip

Ha nem törődik azzal, hogy a jelszavát mások láthatják - és az sem, hogy az a parancselőzményekben legyen tárolva -, akkor a -P(jelszó) opcióval megadhatja a jelszót a parancssorban . (Nagy betűt kell használnia „P” betűvel)

csomagolja ki -P ötven.treacle.cutlass -q forrás_kód.zip

Fájlok kizárása

Ha nem akar kibontani egy adott fájlt vagy fájlcsoportot, használja a -x(kizárás) opciót. Ebben a példában az összes fájlt ki akarjuk vonni, kivéve azokat, amelyek „.h” kiterjesztéssel végződnek.

unzip -q forrás_kód.zip -x * .h

Fájlok felülírása

Tegyük fel, hogy kibontott egy archívumot, de tévedésből törölt néhányat a kibontott fájlok közül.

Ennek gyors megoldása a fájlok újbóli kibontása lenne. De ha megpróbálja kibontani a ZIP fájlt ugyanabban a könyvtárban, mint korábban, unzipa fájlok felülírására vonatkozó döntés meghozatalát kéri. A következő válaszok egyikére számít.

Az r(átnevezés) válaszon kívül ezek a válaszok megkülönböztetik a kis- és nagybetűket.

  • y: Igen, írja felül ezt a fájlt
  • n: Nem, ne írja felül ezt a fájlt
  • V: Minden, írja felül az összes fájlt
  • N: Nincs, ne írjon felül egyetlen fájlt sem
  • r: Nevezze át, bontsa ki ezt a fájlt, de adjon neki új nevet. Új nevet fog kérni.

A unzipmeglévő fájlok felülírásának kényszerítésére használja a -o(felülírás) opciót.

unzip -o -q forrás_kód.zip

A hiányzó fájlok pótlásának leghatékonyabb módja az lenne, ha unzipaz archívumban csak azokat a fájlokat vonják ki , amelyek nem szerepelnek a célkönyvtárban. Ehhez használja a -n(soha ne írja felül) opciót.

unzip -n forrás_kód.zip

ZIP fájl belsejében keres

Gyakran hasznos és tanulságos a ZIP-fájlban lévő fájlok listájának megtekintése, mielőtt kibontaná. Ezt a -l(list archive) opcióval teheti meg . Átvezetik less, hogy a kimenet kezelhető legyen.

unzip -l forrás_kód.zip | Kevésbé

A kimenet megmutatja a ZIP fájlban található könyvtárakat és fájlokat, azok hosszát, valamint az archívumba adás időpontját és dátumát. A kilépéshez nyomja meg a „q” gombot less.

A ZIP-fájl belsejébe más módon is lehet bekukkantani, amelyek különböző típusú információkat adnak meg, amint látni fogjuk.

Jelszó hozzáadása a zipcloak paranccsal

Ha létrehozott egy ZIP fájlt, de elfelejtette hozzáadni a jelszót, mit tehet? A zipcloakparancs segítségével gyorsan hozzáadhat egy jelszót a ZIP fájlhoz . Adja meg a ZIP fájl nevét a parancssorban. Kérni fogja a jelszót. A jelszó másodszor történő megadásával ellenőriznie kell.

zipcloak forrás_kód.zip

A fájl részleteinek megtekintése a zipdetails paranccsal

A zipdetailsparancs sok információt mutat a ZIP fájlról. A parancs kimenetének kezelésének egyetlen ésszerű módja az, hogy átcsövezi azt less.

zipdetails forrás_kód.zip | Kevésbé

Vegye figyelembe, hogy az információk akkor is tartalmazzák a fájlneveket, ha a ZIP fájl jelszóval védett. Ez a fajta információ a ZIP fájlban metaadatként van tárolva, és nem része a titkosított adatoknak.

Keresés a fájlban a zipgrep paranccsal

A zipgrepparancs lehetővé teszi, hogy a ZIP fájlokban található fájlokban keressen . A következő példában azt szeretnénk tudni, hogy a ZIP fájl mely fájljaiban található a „keyval.h” szöveg.

zipgrep keyval.h forrás_kód.zip

Láthatjuk, hogy a fájlok slang.cés getval.ctartalmazza a string „keyval.h” .Mi is látni, hogy két példányban ezeket a fájlokat a különböző könyvtárak a ZIP fájlt.

Információk megtekintése a zipinfo paranccsal

A zipinfoparancs még egy módot kínál a ZIP fájl belenézésére. Mint korábban, a kimenetet is átcsövezzük less.

zipinfo forrás_kód.zip | Kevésbé

Balról jobbra a kimenet mutatja:

  • A fájl engedélyei
  • A ZIP fájl létrehozásához használt eszköz verziója
  • Az eredeti fájlméret
  • Fájlleíró (alább ismertetve)
  • A tömörítés módja (ebben az esetben defláció)
  • Az adatok és az időbélyegző
  • A fájl és bármely könyvtár neve

A fájlleíró két karakterből áll. Az első karakter „t” vagy „b” lesz, amely szöveges vagy bináris fájlt jelöl. Nagybetű esetén a fájl titkosítva van. A második karakter négy karakter egyike lehet. Ez a karakter jelzi, hogy a fájl milyen típusú metaadatokat tartalmaz: egyiket sem, kiterjesztett helyi fejlécet, „extra mezőt” vagy mindkettőt.

  • -: Ha egyik sem létezik, akkor a karakter kötőjel lesz
  • l: ha van kiterjesztett helyi fejléc, de nincs extra mező
  • x: ha nincs kiterjesztett helyi fejléc, de van egy extra mező
  • X: ha van kiterjesztett helyi fejléc és van egy extra mező

Bontsa fel a fájlt a zipsplit paranccsal

Ha el kell küldenie a ZIP fájlt másnak, de méretkorlátozások vagy problémák vannak a fájl továbbításával, akkor a zipsplitparancs segítségével feloszthatja az eredeti ZIP fájlt kisebb ZIP fájlok halmazára.

A -n(méret) opció lehetővé teszi az új ZIP fájlok maximális méretének beállítását. Ebben a példában felosztjuk a source_code.zipfájlt. Nem akarjuk, hogy az új ZIP fájlok bármelyike ​​nagyobb legyen, mint 100 KB (102400 bájt).

zipsplit -n 102400 forrás_kód.zip

A választott méret nem lehet kisebb, mint a ZIP fájlban található fájlok mérete.

Ezekkel a parancsokkal létrehozhatja saját ZIP fájljait, kibonthatja a kapott ZIP fájlokat, és különféle egyéb műveleteket hajthat végre velük anélkül, hogy elhagyná a Linux terminált.