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. 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, 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.

Módszer

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

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.

Alternatívák

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.

Használat, példák

Á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

  1. ↑ "compress-Spezifikation der Open Group" (angol nyelven). Hozzáférés: 2013. május 12.
  2. ↑ "Jean-Loup Gailly, acteur méconnu de l'Open Source.". Planete Linux (francia nyelven) (20). 2002. 2002. október 30. dátummal az eredeti címről archiválva. Hozzáférés: 2012. június 22. {{cite journal}}: |first1= missing |last1= (súgó); Unknown parameter |journal-link= ignored (súgó); Unknown parameter |month= ignored (súgó); Unknown parameter |name1= ignored (súgó)
  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(Apparatus and method for compressing data signals and restoring the compressed data signals)
  5. ↑ High speed data compression and decompression apparatus and methodPDF-hivatkozás(High speed data compression and decompression apparatus and method)
  6. ↑ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM (angol nyelven). Hozzáférés: 2020. szeptember 5.

Fordítás