tar (informatika)

standardní UN*Xový archivátor
(přesměrováno z GNU tar)

tar (anglická výslovnost [taː(r)]; akronymická zkratka z tape archiver, česky páskový archivovač) je souhrnný název jednak pro souborový formát sloužící k uložení mnoha jednotlivých souborů, jednak pro jednoúčelové programy, které s tímto formátem pracují. Formát samotný vznikl v počátcích Unixu a až později byl standardizován v rámci normy POSIX. Původně pomáhal při archivaci souborů na páskových jednotkách, ale později se jeho užívání rozšířilo a dnes je používán všude tam, kde je vhodné pro účely distribuce či archivace sloučit více souborů do jednoho tak, aby se zachovaly informace o adresářové struktuře, přístupových právech a dalších atributech, které běžně souborový systém obsahuje.

tar
Přípona souboru.tar
Typ internetového médiaapplication/x-tar
Uniform Type Identifierpublic.tar-archive
Typ formátuarchivační program
Otevřený formátano

Klíčové implementace editovat

V minulosti byl tar implementován na mnoha systémech. Také mnohé archivační programy mají alespoň částečnou podporu formátu tar, používajíce jednu z níže uvedených implementací. Historii taru lze shrnout jako příběh nekompatibilit, známý jako tarové války (anglicky „tar wars“).

Klíčové implementace v chronologickém pořadí:

  • Solaris tar, založený na původním taru z UNIXu V7; v Solarisu je implicitní (default).
  • star (unique standard tape archiver), napsán roku 1982 (autor Jörg Schilling) pod licencí CDDL.
  • GNU tar je implicitní na většině distribucí Linuxu. Vychází z pdtaru vyvíjeného od roku 1987. Jeho současné verze si poradí s vícerem formátů (ustar, pax, GNU a v7).
  • FreeBSD tar (též BSD tar) se stal implicitním v systémemech založených na BSD, tedy včetně macOSu. Umí automaticky detekovat formát souboru a extrahovat obsah archivů tar, pax, cpio, zip, jar, ar, xar, rpm a ISO 9660 CD-ROM image.

Navíc může většina implementací paxu číst i vytvářet mnoho typů souborů tar.

Struktura editovat

Formát ustar se skládá z 512bajtových bloků. První blok je vždy hlavička (angl. Header Block), která nese mimo jiné informaci o názvu a typu souboru (běžný soubor, adresář, symbolický odkaz, apod.) Původní formát ustar umožňuje uložit soubory s názvy až délky 255 znaků s tím, že celý název musí být rozdělitelný na 155znakový prefix a 100znakový krátký název. Pokud se jedná o běžný soubor, následuje ještě několik datových bloků. Protože velikost souboru nemusí být násobkem 512 bajtů, je poslední datový blok doplněn nulami. Bezprostředně poté následuje další hlavička a případný obsah souboru. Konec archivu je indikován dvěma nulovými bloky (blok se skládá pouze z nul). Všechny informace v hlavičce jsou uvedeny v textové podobě, přičemž čísla jsou vyjádřena v osmičkové soustavě.

název délka vysvětlení
name 100 krátký název souboru
mode 8 oprávnění
uid 8 UID vlastníka
gid 8 GID vlastníka
size 12 velikost souboru v bajtech
mtime 12 čas modifikace souboru
chksum 8 kontrolní součet bloku s hlavičkou
typeflag 1 typ souboru (adresář, běžný soubor, atd.)
linkname 100 cíl odkazu (v případě, že se jedná o symbolický nebo pevný odkaz)
magic 6 identifikátor verze archivu (např. ustar 00)
version 2
uname 32 uživatelské jméno a skupina vlastníka
gname 32
devmajor 8 hlavní a vedlejší číslo zařízení (v případě speciálního souboru)
devminor 8
prefix 155 prefix názvu souboru
padding 12 výplň do počátku dalšího bloku

Přípony archivů a komprese editovat

 
Ikona pro tar soubory v prostředí KDE

Obvykle se pro tarové archivy používá přípona .tar. Velmi často jsou ovšem tyto soubory po zpracování tarem ještě předány kompresnímu programu, nejčastěji gzip, bzip2, compress či LZMA a pak se pro indikaci použitého kompresního programu používá dvojitá přípona, tedy například .tar.gz nebo .tar.bz2. Z doby používání souborového systému FAT16, kdy bylo možné používat jen jednu tříznakovou příponu, navíc přežívají zkrácené přípony, například .tgz, .taz či .tlz.

Přehled přípon komprimovaných tarových archivů
způsob komprese plná přípona zkrácená přípona
Gzip .tar.gz .tgz
bzip2 .tar.bz2 .tbz i .tb2
compress .tar.Z .taz
LZMA .tar.lzma .tlz
xz .tar.xz .txz
zstandard .tar.zst .tzst

Běžné verze programu tar (například BSDGNU) mají přepínače -z (pro gzip) a -j (pro bzip2), při jejichž použití program sám provede hned po zabalení kompresi.

Od verze 1.31 programu GNU tar vydané v lednu 2019 je podporována komprese Zstandard (vyvinul ji Facebook). Lze ji použít přepínačem --zstd.[1][2][3]

Reference editovat

V tomto článku byl použit překlad textu z článku tar (file format) na anglické Wikipedii.

  1. JEŽEK, David. Tar přinese podporou komprese Zstd [online]. Internet Info, s.r.o., 2018-03-27 [cit. 2018-03-28]. Dostupné online. 
  2. LARABEL, Michael. Tar Picks Up Support For Zstd Compression [online]. Phoronix Media, 2018-03-26 [cit. 2018-03-28]. Dostupné online. (anglicky) 
  3. FIKAR, Jan. GNU Tar 1.31 přináší podporu zstd. root.cz [online]. 2019-1-4 [cit. 2019-1-6]. Dostupné online. 

Externí odkazy editovat