compress
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 gzip
hez é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]- ↑ compress-Spezifikation der Open Group (angol nyelven). (Hozzáférés: 2013. május 12.)
- ↑ (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.)
- ↑ 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.)
- ↑ Apparatus and method for compressing data signals and restoring the compressed data signals
- ↑ High speed data compression and decompression apparatus and method
- ↑ 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.