tar (informatika)

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

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.

Klíčové implementace

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

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ázevdélkavysvětlení
name100krátký název souboru
mode8oprávnění
uid8UID vlastníka
gid8GID vlastníka
size12velikost souboru v bajtech
mtime12čas modifikace souboru
chksum8kontrolní součet bloku s hlavičkou
typeflag1typ souboru (adresář, běžný soubor, atd.)
linkname100cíl odkazu (v případě, že se jedná o symbolický nebo pevný odkaz)
magic6identifikátor verze archivu (např. ustar 00)
version2
uname32uživatelské jméno a skupina vlastníka
gname32
devmajor8hlavní a vedlejší číslo zařízení (v případě speciálního souboru)
devminor8
prefix155prefix názvu souboru
padding12výplň do počátku dalšího bloku

Přípony archivů a komprese

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 kompreseplná příponazkrá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

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. (česky) 
  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

Média použitá na této stránce

Torchlight tar.png
Autor: Yan Shuangchun (phytonix <at> gmail <dot> com), Licence: LGPL
An icon from the Torchlight icon theme (version 0.2.0 Final) for KDE 3.x. Icons were designed with Inkscape.