logo

Příkaz Tar v Linuxu/Unixu s příklady

Příkaz tar je zkratka pro páskový archiv v Linuxu. Tento příkaz se používá pro vytvoření archivu a rozbalení archivních souborů. v Linux , je to jeden ze základních příkazů, které usnadňují funkci archivace. Tento příkaz můžeme použít pro vytváření nekomprimovaných a komprimovaných archivních souborů a také je upravovat a udržovat.

Tar je pomůcka počítačového softwaru ke shromažďování několika souborů do jednoho archivního souboru v počítači. Často je známý jako tarball pro účely zálohování a distribuce. Titul je získán z „páskového archivu“, protože byl ve skutečnosti vyvinut pro specifikaci dat na sekvenčních I/O zařízeních, která nepoužívají žádný z jejich souborových systémů. Skupiny archivních dat vytvořené pomocí tar zahrnují mnoho parametrů souborového systému, jako je organizace adresářů, oprávnění k přístupu k souborům, vlastnictví, časová razítka a název. Ve prospěch pax, POSIX opustil tar, tar přesto vidí široké použití.

Nejprve byl oznámen ve verzi 7 Unix v lednu 1979 a nahradil program tp. Pro ukládání dat byla struktura souborů standardizována v POSIX.1-1988 a později POSIX.1-2001 a stala se vzorem podporovaným téměř všemi moderními systémy archivace souborů. Operační systémy podobné Unixu obecně obsahují nástroje pro podporu souborů tar a nástroje používané pro jejich kompresi, jako je bzip2 a gzip.
Od aktualizace Microsoft z 10. dubna 2018 je BSD-tar obsažen v Microsoft Windows a existují dva nebo více nástrojů třetích stran pro čtení a zápis těchto vzorů ve Windows.

Formáty souborů tar

K dispozici je mnoho formátů souborů tar, včetně současných a historických. V POSIX jsou zapsány dva formáty tar: pax a ustar.

Záhlaví

Záznam záhlaví souboru obsahuje metadata souboru. V záznamu záhlaví jsou informace zakódovány ve standardech ASCII, aby byla zajištěna flexibilita napříč různými architekturami pomocí odlišného uspořádání bajtů. Pokud je tedy každý soubor textovým souborem ASCII v archivu a obsahuje názvy ASCII, archiv je textový soubor ASCII (má několik znaků NUL).

V následující tabulce je uvedeno několik polí definovaných skutečným unixovým formátem tar. Tabulka typu odkazového souboru/indikátoru obsahuje několik moderních rozšíření. Pole je vyplněno různými bajty NUL, pokud není použito.

Záhlaví tar před POSIX.1-1988:

Pole Velikost pole Posun pole
Název souboru 100 0
Režim souborů 8 100
Číselné uživatelské ID vlastníka 8 108
Číselné ID uživatele skupiny 8 116
Velikost bajtového souboru 12 124
Čas poslední úpravy ve formě číselného unixového času 12 136
Kontrolní součet pro záznam záhlaví 8 148
Indikátor spojení 1 156
Název propojeného souboru 100 157

Formát Ustart

Ve formátu Ustar téměř každý moderní program tar zapisuje a čte archivy, oznámený standardem POSIX IEEE P1003.1 z roku 1988. Zavedl další pole záhlaví. Předchozí programy tar by se vyhnuly dodatečným informacím, ale nové programy zkontrolují přítomnost řetězce 'Ustar', aby rozhodly, zda se používá novější formát.

Pole Velikost pole Posun pole
Mnoho polí, jako v předchozím formátu 156 0
Zadejte příznak 1 156
Podobné pole jako v předchozím formátu 100 157
Indikátor 'ustar' Ustar, poté NUL 6 257
Verze '00' Ustar 2 263
Uživatelské jméno vlastníka 32 265
Název skupiny vlastníka 32 297
Hlavní číslo zařízení 8 329
Vedlejší číslo zařízení 8 337
Předpona názvu souboru 155 3. 4. 5

POSIX.1-2001/os

Sun navrhl techniku ​​pro přidání rozšíření do formátu tar v roce 1997. Později byla schválena pro standard POSIX.1-2001. Formát se nazývá formát pax nebo rozšířený formát tar. Některé značky jsou specifikovány standardem POSIX, včetně mtime, atime, linkpath, gname, uname, size, gid, uid a definice znakové sady pro jména skupin/uživatelů a názvy cest.

linuxové příkazy, které

Klíčové implementace tar

Klíčové implementace jsou uvedeny v pořadí původu:

    solaris tar přichází jako výchozí na OS Solaris, založený na skutečném Unixu V7. GNU tar je výchozí na téměř každé distribuci Linuxu. Je založen na implementaci veřejné domény pdtar, která začala v roce 1987. Nedávná vydání mohou používat mnoho formátů, jako je GNU, pax, v7 a ustar. Deht FreeBSD se stal výchozím dehtem na téměř každém OS založeném na Berkeley Software Distribution, jako je Mac OS X. Schily dehet je historicky důležitý, protože několik jeho rozšíření bylo slavných. Poprvé byla vydána v dubnu 1997. Tarfile Pythonu podporuje dva nebo více formátů tar, jako je gnu, pax a ustar; umí číst, ale nevytváří SunOS tar rozšířené a V7 formáty; pax je výchozí formát pro vytváření archivů. Pro uživatele je k dispozici od roku 2003.

Navíc většina implementací cpio a pax může vytvářet a číst dva nebo více typů souborů tar.

Syntaxe příkazu tar:

 tar [options] [archive-file] [directory or file to be archived] 

Možnosti v příkazu tar

Níže jsou uvedeny různé možnosti v příkazu tar:

    -C:Tato volba se používá pro vytvoření archivu.-F:Tato možnost se používá pro vytvoření archivu spolu se zadaným názvem souboru.-X:Tato volba se používá pro extrahování archivů.-v:Lze jej použít pro přidání archivu do existujícího archivního souboru.-t:Používá se pro zobrazení nebo výpis souborů v archivovaném souboru.-A:Tato volba se používá pro zřetězení archivních souborů.-v:Lze jej použít k zobrazení podrobných informací.-j:Používá se pro filtrování archivních souborů tar pomocí tbzip.-S:Je to soubor zip a informuje příkaz tar, který vytvoří soubor tar pomocí gzip.-r:Tato možnost se používá pro aktualizaci a přidání adresáře nebo souboru do existujícího souboru .tar.-V:Tato volba se používá pro ověření archivního souboru.

Úvod do archivního souboru

Archivní soubor lze definovat jako soubor, který obsahuje více souborů s metadaty. Tyto soubory se používají ke shromažďování více než jednoho datového souboru společně do jednoho souboru pro snadnější ukládání a přenositelnost. Může být také použit pro kompresi souborů, aby se spotřebovalo méně úložného prostoru.

Příklady příkazu tar

Některé z důležitých příkladů, které jsou široce používány v příkazu tar, jsou následující:

1. Vytvoření nekomprimovaného tar archivu s volbou -cvf

Tato možnost dělá soubor tar známý jako soubor.tar . Je to archiv každého .txt souboru uvnitř mydir adresář.

Příkaz je následující:

 $ tar cvf file.tar *.txt 

Příkaz Tar v Linuxu

2. Extrahování souborů přes archiv s volbou -xvf

Tato možnost může extrahovat soubory prostřednictvím archivů.

Příkaz je následující:

 $ tar xvf file.tar 

Příkaz Tar v Linuxu

3. komprese gzip přes archiv tar s volbou -z

Tato možnost dělá soubor tar známý jako soubor.tar.gz. Je to archiv každého souboru .txt.

Příkaz je následující:

 $ tar cvzf file.tar.gz *.txt 

Příkaz Tar v Linuxu

4. Rozbalte archiv gzip tar s volbou -xvzf

Tato volba může extrahovat soubory prostřednictvím archivovaných souborů tar file.tar.gz.

Příkaz je následující:

 $ tar xvzf file.tar.gz 

Příkaz Tar v Linuxu

5. Vytvoření komprimovaných souborů tar s volbou -j

Tato možnost nám pomůže vytvořit a komprimovat archivní soubory. Dekomprimace i komprimace zaberou více času ve srovnání s gzip.

Příkaz je následující:

 $ tar cvfj file.tar.tbz hello1.txt 

Příkaz Tar v Linuxu

6. Rozbalte v Linuxu jeden zadaný adresář nebo soubor

Tato volba se používá k rozbalení libovolného souboru v našem aktuálním adresáři nebo uvnitř zadaného adresáře s volbou -C.

Příkaz je následující:

Java srovnatelné rozhraní
 $ tar -xvf file.tar -C file's path in the directory 

Příkaz Tar v Linuxu

Nebo,

 $ tar -xvf file.tar 

Příkaz Tar v Linuxu

7. Rozbalte více souborů .tar.tbz, .tar.gz, .tar v Linuxu

Tato možnost nám k tomu pomůže šíření nebo extrahujte více než jeden soubor z tar.bz2, tar.gz a archivního souboru tar.

Příklad této možnosti je následující:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Příkaz Tar v Linuxu

Nebo,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Příkaz Tar v Linuxu

Nebo,

 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Příkaz Tar v Linuxu

8. Zkontrolujte velikost existujícího souboru tar.tbz, tar.gz, tar

Příkaz nám pomůže zobrazit výše uvedenou velikost archivního souboru v kilobajtech (KB).

Příkaz je následující:

 $ tar -czf - file2.tar.tbz | wc -c 

Nebo,

 $ tar -czf - file1.tar.gz | wc -c 

Nebo,

 $ tar -czf - file.tar | wc -c 

Příkaz Tar v Linuxu

9. Aktualizujte stávající soubor tar

V Linuxu je příkaz pro aktualizaci existujícího souboru tar následující:

 $ tar rvf file.tar *.txt 

10. Seznam obsahu a popis souboru tar s volbou tf

Tato volba nám pomůže zobrazit celý seznam archivních souborů. Také můžeme uvést konkrétní obsah v libovolném souboru tar.

Příkaz je následující:

 $ tar tf file.tar 

Příkaz Tar v Linuxu

11. Prohlédněte si archiv pomocí volby -tvf

V Linuxu můžeme k zobrazení archivu použít volbu -tvf.

Příkaz je následující:

 $ tar -tvf file.tar 

Příkaz Tar v Linuxu

12. Předejte název souboru jako argument pro nalezení souboru tar

Tato možnost umožňuje zobrazit archivované soubory s jejich informacemi.

Příkaz je následující:

 $ tar tvf file.tar filename 

Příkaz Tar v Linuxu

13. Použití roury pro vyvolání „příkazu grep“ k vyhledání toho, co hledáme

Tato možnost nám pomůže vypsat pouze zmíněný obrázek nebo text rukojeť prostřednictvím archivovaných souborů.

Příkaz je následující:

 $ tar tvf file.tar | grep 'filename.file' 

Nebo,

 $ tar tvf file.tar | grep 'text to search' 

Příkaz Tar v Linuxu

Úvod do zástupných znaků

Alternativně jsou zástupné znaky v Linuxu označovány jako zástupný znak nebo zástupný znak. Je to symbol, který se používá pro reprezentaci nebo nahrazení více znaků.

Zástupné znaky jsou obvykle buď otazník (?), který znázorňuje jednotlivý znak, nebo hvězdička (*), která znázorňuje více znaků.

Příklad-

14. Najděte obrázek ve formátu .webp

Pomůže nám to pro extrahování pouze souborů s příponou .webp z archivu file.tar. Volba -wildcards informuje tar o interpretaci zástupných znaků v názvu souboru, který má být extrahován.

Název souboru (*.webp) je uzavřen uvnitř jednoduchých uvozovek pro ochranu zástupného znaku (*) před nesprávným rozšířením jakýmkoli shellem.

typ data na stroji

Příkaz je následující:

 $ tar tvf file.tar --wildcards '*.webp' 

Příkaz Tar v Linuxu

Poznámka: Ve výše uvedeném příkazu je na pozici názvu souboru použit symbol '*' pro každý soubor dostupný v daném konkrétním adresáři.

15. Odstraňte soubory z archivu tar

Pro odstranění souborů a archivu tar můžeme použít volbu --delete.

Příkaz je následující:

 $ tar --delete -f archive.tar file_name 

Příklad:

 tar -delete -f file.tar hello1.txt 

Výstup:

Příkaz Tar v Linuxu

ahoj1.txt soubor byl odstraněn z archivu file.tar:

Příkaz Tar v Linuxu