Tar (informatika)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

tar (anglická výslovnost [taː(r)]; akronymická zkratka z tape archiver, 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í. +more Historii taru lze shrnout jako příběh nekompatibilit, známý jako tarové války .

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. +more * 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. +more 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ř. +more ustar 00)
version2identifikátor verze archivu (např. ustar 00)
uname32uživatelské jméno a skupina vlastníka
gname32uživatelské jméno a skupina vlastníka
devmajor8hlavní a vedlejší číslo zařízení (v případě speciálního souboru)
devminor8hlavní a vedlejší číslo zařízení (v případě speciálního souboru)
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 . +moretar. 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.

Gzip. tar. +moregz. 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.

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top