tar (informatika)
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.
Přípona souboru | .tar |
---|---|
Typ internetového média | application/x-tar |
Uniform Type Identifier | public.tar-archive |
Typ formátu | archivační program |
Otevřený formát | ano |
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á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
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.
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 BSD a GNU) 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.
- 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)
- LARABEL, Michael. Tar Picks Up Support For Zstd Compression [online]. Phoronix Media, 2018-03-26 [cit. 2018-03-28]. Dostupné online. (anglicky)
- FIKAR, Jan. GNU Tar 1.31 přináší podporu zstd. root.cz [online]. 2019-1-4 [cit. 2019-1-6]. Dostupné online.
Externí odkazy
- Kniha Linux:Nástroje_pro_archivaci#tar ve Wikiknihách