compress

A Wikipédiából, a szabad enciklopédiából

A compress (/usr/bin/compress) tömörítő program UNIX-on és UNIX-szerű operációs rendszereken. Funkcióját a POSIX szabvány, a Single UNIX Specification és az IEEE 1003.1 szabvány tartalmazza.[1] Ellentétével, uncompress-szel (/usr/bin/uncompress) együtt archívumok helytakarékos kezelését szolgálja.

A compress tömörítési algoritmusát a Unisys szoftverszabadalma védte,[2] míg az LZW és az LZ78 algoritmusokat Terry A. Welch és társai szabadalmi joga.

A következő POSIX- és Single Unix Specification-változatban a tervek szerint a gzip Deflate algoritmusa támogatott lesz.[3]

Módszer[szerkesztés]

A Lempel–Ziv-algoritmust nem támogató rendszereken a compress az argumentumként megadott fájlokat nem módosítja, hanem 2-nél nagyobb Error Levellel megszakad. Ugyanígy megszakadáshoz vezet, ha a .Z kiterjesztés a NAME_MAX rendszermagkonstans által meghatározott maximális névhosszt túllépné.

Más rendszereken a fájlokat tömöríti és a tömörített fájllal helyettesíti, melynek nevét a .Z kiterjesztéssel egészíti ki. Ha az ezt végrehajtó folyamat jogosultsága elegendő, a jogosultságok és a tulajdonosok megmaradnak. E fájlokat a uncompress révén lehet kicsomagolni, mely a névvégi .Z kiterjesztést eltávolítja.

Hasonlóan a gziphez és a bzip2-höz a compress csak egyes fájlokat tömörít. Ha több fájl vagy teljes könyvtárhierarchia tömörítendő, gyakran archiváló programmal (például tar, cpio, backup stb.) együtt használják, melynek kimenete végül tömöríthető.

Szabadalmi jogok[szerkesztés]

A POSIX szabvány rögzíti, hogy a compress fájlokat az adaptív Lempel–Ziv-algoritmus (LZC, az LZW algoritmus változata) alapján szerkeszti. Ezen algoritmust (pontosabban az alapot képző LZ78 algoritmust) és a kiterjesztését 2003-ig (Japánban 2004-ig) Terry A. Welch szabadalmi joga védte, melyet a Sperry Corporationnek adtak ki.[4][5]

Alternatívák[szerkesztés]

Többek közt e jogvédett folyamattól való függés miatt fejlesztették ki az alternatívákat, a gzip és a bzip2 algoritmusokat, melyek mindegyike hasonló, de nem jogvédett tömörítő algoritmusokon alapul. A GNU operációs rendszer így gzipet (GNU-zip) használ a compress helyett. A gzip képes bár compress-szel kapott fájlokat olvasni és kicsomagolni, de a tömörítés az ahhoz használt (korábban) szabadalmi jogok által védett folyamat miatt nem volt támogatott. Ennek ellenére Unixon és BSD-n a compress használatban maradt, és a compress és uncompress parancsokat az IBM i operációs rendszerrel is kompatibilissé tették.[6]

Használat, példák[szerkesztés]

Általában a compress egy vagy több fájlnevet kér argumentumként, és e fájlokat cseréli le tömörített változatukra. A -c kapcsolóval e változat viszont a stdout-ra íratik ki a fájlrendszer tartalmának változtatása nélkül. Ez használható a tömörített másolatok külső eszközökön való tárolására (az adatfolyamot egy megfelelő program megfelelő csatornán teszi elérhetővé), vagy a kimenő fájlok törlésének megkerülésére:

# compress -c /path/to/input > /path/to/output.Z

Ezenkívül a -c N lehetővé teszi a tömörítés(i arány) változtatását, ahol N az egy kódhoz maximálisan felhasználható bitek száma (9 és 14 közti értékek támogatottak). A hosszabb kódok jobb tömörítést tesznek lehetővé nagyobb számítási igény mellett.

Jegyzetek[szerkesztés]

  1. compress-Spezifikation der Open Group (angol nyelven). (Hozzáférés: 2013. május 12.)
  2. (2002. szeptember–október) „Jean-Loup Gailly, acteur méconnu de l'Open Source.” (francia nyelven). Planete Linux (20). [2002. október 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. június 22.)  
  3. 0001041: Encourage implementations to include better integrity checksum, compression and decompression utilities if possible.. Austin Group Bug Tracker . (Hozzáférés: 2017. november 23.)
  4. Apparatus and method for compressing data signals and restoring the compressed data signalsPDF-hivatkozás
  5. High speed data compression and decompression apparatus and methodPDF-hivatkozás
  6. IBM: IBM System i Version 7.2 Programming Qshell (angol nyelven). IBM . (Hozzáférés: 2020. szeptember 5.)

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a compress című német Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.