GNU/Linux >> Znalost Linux >  >> Linux

Příkaz tar v Linuxu s příklady

Úvod

GNU tar (zkratka pro T opice AR chiver) je nejrozšířenější archivační nástroj v systémech Linux. K dispozici přímo v terminálu, tar pomáhá vytvářet, extrahovat a vypisovat obsah archivu.

Nástroj je jednoduchý a má mnoho užitečných možností pro kompresi souborů, správu záloh nebo extrahování nezpracované instalace.

Tento výukový program ukazuje, jak používat příkaz tar prostřednictvím příkladů a dostupných možností.

Předpoklady

  • Systém se systémem Linux.
  • Přístup k příkazovému řádku/terminálu.
  • Soubor nebo soubory pro testování příkazu.

Syntaxe příkazu Tar

tar Obecná syntaxe příkazu je:

tar <operation mode> <option(s)> <archive> <file(s) or location(s)>
  • Provozní režim označuje, která operace se se soubory provádí (vytvoření, extrakce atd.). Příkaz umožňuje a vyžaduje pouze jednu operaci.
  • Možnosti upravovat provozní režim a nejsou nutné. Počet možností není omezen.
  • archiv je název a přípona souboru.
  • názvy souborů je seznam oddělený mezerami pro extrakci nebo kompresi nebo název shodný se zástupnými znaky.

Existují tři možné styly syntaxe pro použití operací a voleb:

1. Tradiční styl , seskupené bez jakýchkoli pomlček.

Například:

tar cfv <archive> <file(s) or location(s)>

2. Krátký styl možnosti UNIX pomocí jedné pomlčky a seskupených možností:

tar -cfv <archive> <file(s) or location(s)>

Případně pomlčka před každou možností:

tar -c -f -v <archive> <file(s) or location(s)>

3. GNU long-option style s dvojitou pomlčkou a popisným názvem možnosti:

tar --create --file <archive> --verbose <file(s) or location(s)>

Všechny tři styly lze použít v jediném tar příkaz.

Možnosti příkazu Tar

Následující tabulka uvádí běžně používaný tar operace a možnosti.

Příkaz Role Popis
--create
-c
Operace Vytvoří nový archiv.
--list
-t
Operace Uvádí obsah archivu.
--extract
-x
Operace Extrahujte jednu nebo více položek z archivu.
--append
-r
Operace Připojí soubory k existujícímu archivu.
--concatenate
-A
Operace Připojí archivy k existujícímu archivu.
--compare
--diff
-d
Operace Porovná členy archivu se soubory v systému.
--delete Operace Odstraní člena z archivu.
--update
-u
Operace Aktualizuje archiv novými soubory, pouze pokud nejsou v archivu a jsou novější než stávající soubory.
--file=<archive>
-f <archive>
Možnost Určuje soubor.
-C Možnost Změní adresář.
--verbose
-v
Možnost Zobrazuje soubor tar funguje za běhu.
--wildcard Možnost Vykreslí možnosti vyhledávání pomocí zástupných znaků.
--bzip2
-j
Možnost Čtení nebo zápis komprimovaných archivů ve formátu bzip2.
--gzip
-z
Možnost Čtení nebo zápis komprimovaných archivů ve formátu gzip.
--xz
-J
Možnost Čtení nebo zápis komprimovaných archivů ve formátu xz.

Podle příkladů v další části se dozvíte, jak pracovat s dehtem .

Příklady příkazů Tar

Níže uvedené příklady mají následující požadavky:

1. Vytvořte adresář s názvem tar_examples a přejděte do adresáře:

mkdir tar_examples && cd tar_examples

2. Vytvořte další adresář s názvem files v tar_examples a zadejte tento adresář:

mkdir files && cd files

3. Vytvořte soubory k naplnění souborů adresář:

touch file{0..100}.txt

Pro návrat do nadřazeného adresáře použijte:

cd ..

Všechny níže uvedené příklady vycházejí z tar_examples adresář.

1. Vytvořit archiv

Syntaxe pro vytvoření archivu závisí na typu archivu. Chcete-li vytvořit archiv, použijte tar pomocí -c nebo --create operace.

Vytvořte archiv tar

Chcete-li vytvořit archiv tar (také nazývaný tarball), použijte:

tar cf <archive name>.tar <file(s) or location(s)>

Například archivujte soubory adresář:

tar cf files.tar files

Výstup obsahuje seznam všech souborů přidaných do archivu. Zobrazte obsah adresáře, abyste viděli vytvořený file.tar archiv:

tar cf files.tar files

Výstup obsahuje seznam všech souborů přidaných do archivu. Zobrazte obsah adresáře, abyste viděli vytvořený file.tar archiv:

ls -l

Vytvořte komprimovaný archiv tar.gz

Přidejte -z možnost vytvořit komprimovaný soubor GNUzip (gzip):

tar czf <archive name>.tar.gz <file(s) or location(s)>

Například:

tar czf files.tar.gz files

Velikost souboru je menší než u běžného souboru tarball a původního adresáře.

Vytvořit komprimovaný archiv tar.bz2

bzip2 je program pro kompresi souborů a alternativa k gzip.

Chcete-li vytvořit tar.bz2 přidejte -j tag:

tar cjf <archive name>.tar.bz2 <file(s) or location(s)>

Například:

tar cjf files.tar.bz2 files

bzip2 má vyšší kompresní poměr a trvá déle než gzip.

Vytvořit archiv tar.xz

Použijte -J tag pro kompresi archivů ve formátu tar.xz:

tar cJf <archive name>.tar.xz <file(s) or location(s)>

Například:

tar cJf files.tar.xz files

Komprese xz trvá nejdéle ve srovnání s gzip a bz2. U větších souborů má však xz nejvyšší míru komprese.

2. Odebrat soubory po vytvoření

Chcete-li po archivaci odstranit soubory z disku, použijte --remove-files možnost na konci:

tar cf <archive> <file(s) or location(s)> --remove-files

Vytvořte například archiv tar se soubory adresář a odstraňte jej z disku jedním příkazem:

tar cf files.tar files --remove-files

Zkontrolujte obsah adresáře, abyste se ujistili, že operace funguje správně.

3. Výpis z archivu

Extrahování z archivu nebo komprimovaného archivu používá -x nebo --extract operace s tar . Další možnosti závisí na typu souboru a na tom, kam má tar extrahovat komponenty.

Výpis z archivu tar

Obecná syntaxe pro extrahování z archivu tar je:

tar xf <archive name>.tar

Ve výchozím nastavení tar extrahuje všechny součásti do aktuálního adresáře. Chcete-li označit, kam extrahovat komponenty, přidejte -C a zadejte cestu:

tar xfC <archive name>.tar <path>

Chcete-li například vytvořit adresář s názvem extrahovaný_tar a extrahujte soubory z files.tar , spustit:

mkdir extracted_tar && tar xfC files.tar extracted_tar

Příkaz nevypíše potvrzovací zprávu. Zkontrolujte obsah adresáře, abyste potvrdili, že komponenty byly úspěšně extrahovány.

Výpis z archivu tar.gz

Použijte -z možnost extrahovat soubor tar.gz:

tar xzf <archive name>.tar.gz

Příkaz extrahuje obsah v aktuálním adresáři. Přidejte -C možnost určit umístění:

tar xzfC <archive name>.tar.gz <location>

Vytvořte například nový adresář s názvem extracted_gz a extrahujte files.tar.gz obsah:

mkdir extracted_gz && tar xzfC files.tar.gz extracted_gz

Extrahování komprimovaných archivů tar.gz trvá ve srovnání s jinými kompresními formáty nejméně času.

Výpis z archivu tar.bz2

Chcete-li extrahovat soubory z komprimovaného archivu tar.bz2 do aktuálního adresáře, použijte:

tar xjf <archive name>.tar.bz2

Rozbalte archivy tar.bz2 do konkrétního adresáře pomocí:

tar xjfC <archive name>tar.bz2 <location>

Například vytvořte adresář a extrahujte obsah z files.tar.bz2 :

mkdir extracted_bz2 && tar xjfC files.tar.bz2 extracted_bz2

Výpis z archivu tar.xz

Přidejte -J možnost extrahovat z komprimovaných archivů tar.xz. Syntaxe k extrahování v aktuálním adresáři je:

tar xJf <archive name>.tar.xz

Chcete-li extrahovat obsah do konkrétního adresáře, použijte -C a přidejte cestu:

tar xJfC <archive name>.tar.xz <location>

Jako příklad vytvořte adresář a extrahujte files.tar.xz obsah:

mkdir extracted_xz && tar xJfC files.tar.xz extracted_xz

Kompresní formát xz je střední cestou mezi gz a bz2, pokud jde o dobu extrakce.

4. Kontrola přepsání

Ovládací prvky přepisování Tar řeší situace, kdy se názvy souborů v archivu překrývají se soubory v pracovním adresáři.

Tři možné akce přepsání jsou:

1. Přepište soubory v pracovním adresáři:

tar xf <archive> <Optional file(s) or location(s)> --overwrite

2. Nepřepisujte soubory v pracovním adresáři:

tar xf <archive> <Optional file(s) or location(s)> --keep-old-files

Pokud soubory již existují, tar extrakci neprovede.

3. Extrahujte soubory, pouze pokud jsou novější než stávající soubory:

tar xf <archive> <Optional file(s) or location(s)> --keep-newer-files

Pokud jsou soubory v pracovním adresáři novější nebo stejného stáří, tar soubory nerozbalí.

5. Vypsat obsah archivu

Pomocí následujícího příkazu vypíšete obsah archivu:

tar tf <archive>

Tato možnost funguje pro jakoukoli příponu souboru obsahující tar.

Například seznam souborů a adresářů v files.tar archiv:

tar tf files.tar.gz

Výstup uvádí veškerý obsah uložený v archivu.

6. Najděte soubor v archivu

Existují dva způsoby, jak najít konkrétní obsah pomocí tar:

1. -t možnost výpisu souborů v archivu je užitečná pro vyhledání konkrétních souborů. Přidejte název souboru (nebo názvy) za příkaz:

tar tf <archive> <file(s)>

Chcete-li například najít file50.txt v files.tar.gz archivovat, spustit:

tar tf files.tar.gz file/file50.txt

Tato možnost vyžaduje znát možnou cestu k souboru.

2. Použijte tar společně s příkazem grep k filtrování výstupu:

tar tf <archive> | grep <file(s)>

Například:

tar tf files.tar.gz | grep file50.txt

Tato možnost nevyžaduje znát možnou cestu k souboru.

7. Najděte více souborů v archivu

Použijte --wildcards možnost porovnat více instancí souborů. Například:

tar tf files.tar.gz --wildcards file/files5*.txt

Použijte shodu zástupných znaků, když mají soubory podobný název, nebo pro filtrování určitého typu souboru.

8. Vyloučit soubory při vytváření archivu

Chcete-li během vytváření vyloučit určité soubory z archivu, přidejte následující možnost:

tar cf <archive> --exclude='<pattern>' <files(s) or location(s)>

Například vytvořte archiv z adresáře souborů a vylučte všechny soubory .txt:

tar cf files.tar --exclude='*.txt' files

Seznam obsahu archivu:

tar tf files.tar

Výstup neukazuje žádné soubory .txt, pouze soubory adresář v archivu.

9. Extrahujte jeden soubor z archivu

Pokud potřebujete jeden nebo několik souborů, vyhněte se extrahování celého archivu.

Chcete-li získat jeden soubor z archivu:

1. Vypište obsah a zkontrolujte, zda soubor existuje:

tar tf files.tar | grep file100.txt

Výstup vytiskne cestu k souboru potřebnému pro další krok.

2. Extrahujte konkrétní soubor pomocí:

tar xf files.tar files/file100.txt

Příkaz vytvoří adresář files pouze s uvedeným souborem. Postupujte podle stejných kroků pro extrahování jednoho souboru z komprimovaných archivů přidáním příslušné značky. Použijte například -z možnost vytáhnout ze souboru tar.gz.

10. Možnost podrobného popisu

Možnost verbose zobrazí další informace po spuštění příkazu tar. Přidejte -v nebo --verbose k jakékoli operaci, abyste viděli výsledek.

Vytvořte například soubor tar.gz a přidejte -v :

tar czfv files.tar.gz files

Výstup zobrazuje každý soubor tak, jak je přidán do archivu.

Některé příkazy tar zobrazují další informace, když přidáte -v označte dvakrát. Zkuste například přidat soubory do archivu pomocí -vv :

tar czfvv files.tar.gz files

Výstup vypíše dlouhý formát výpisu a vypadá podobně jako spuštění příkazu ls -l.

11. Smazat z archivu

Chcete-li odstranit z archivu, vyhledejte soubor, který chcete odstranit, například:

tar tf files.tar | grep file100.txt

Poté soubor odstraňte pomocí --delete tag:

tar --delete -f files.tar files/file100.txt

Možnost odstranění nefunguje u komprimovaných formáty souborů.

12. Připojit soubory do archivu

Přidejte soubory do existujícího archivu pomocí -r štítek. Syntaxe je:

tar rf <archive name>.tar <file(s) or location(s)>

Připojte například komprimovaný soubor files.tar.gz soubor do files.tar archiv:

tar rf files.tar files.tar.gz

Již komprimované archivy nelze aktualizovat, takže syntaxe funguje pouze pro soubory tarball .

13. Kombinovat archivy

Použijte --concatenate nebo -A možnost kombinovat více archivů. Základní syntaxe je:

tar Af <archive to extend> <archive to extend with>

Jako příklad zkopírujte existující files.tar soubor pomocí příkazu cp:

cp files.tar files_copy.tar

Dále spojte dva archivy:

tar Af files.tar files_copy.tar

Chcete-li potvrdit, že zřetězení fungovalo, zkontrolujte velikost souboru.

14. Rozdíl mezi archivem a soubory

Chcete-li zkontrolovat rozdíl mezi archivem a soubory na disku, použijte -d tag:

tar df <archive name>

Příkaz hledá stejný obsah a porovná jej s tím, co je v archivu. Tato možnost pouze kontroluje existující soubory a ignoruje všechny nově přidané soubory.

Níže uvedené kroky ukazují, jak používat -d , --diff , nebo --compare tag s tar :

1. Vytvořte archiv tar:

tar cf files.tar files

2. Porovnejte archiv se stávajícím adresářem:

tar df files.tar

Výstup nic nezobrazuje, což znamená, že mezi existujícími soubory není žádný rozdíl.

3. Přidejte text do existujícího souboru v souborech adresář:

echo 'Hello' >> files/file0.txt

4. Znovu porovnejte archiv se stávajícím adresářem:

tar df files.tar

Tentokrát výstup ukazuje rozdíly v době úpravy a velikosti pro konkrétní soubor. Porovnání poskytuje přehled o všech změnách provedených v systému po vytvoření archivu.

15. Aktualizovat soubory v archivu

Aktualizujte stávající soubory v archivu na novější verzi z disku pomocí -u možnost:

tar uf <archive> <file(s) or location(s)>

Aktualizujte například files.tar archiv se změněným textovým souborem:

tar uf files.tar files

Zkontrolujte obsah taru pro změněný soubor:

tar tfv files.tar | grep files0.txt

Příkaz aktualizuje archiv změněnými soubory bez jakéhokoli přepisování.

16. Upravený čas

Tar nabízí různé možnosti úpravy časového razítka souboru. Při vytváření archivu nastavte vlastní datum přidáním --mtime možnost a uvedení data:

tar cf <archive> <file(s) or location(s)> --mtime=YYYY-MM-DD

Vytvořte například archiv a nastavte datum na 1. leden 1999:

tar cf files.tar files --mtime=1999-01-01

Případně extrahujte soubory s aktuálním datem a časem:

tar xf files.tar -m

Užitečnou funkcí při práci s časem je filtrování souborů upravených po určitém datu. Chcete-li například extrahovat soubory vytvořené po datu, použijte --newer-mtime a přidejte datum:

tar xf <archive> --newer-mtime=YYYY-MM-DD

17. Oprávnění

Existují dva možné způsoby, jak ovládat oprávnění k souboru pomocí tar při rozbalování archivu:

1. Zachovejte původní oprávnění:

tar xf <archive name> --preserve-permissions

Oprávnění jsou uvedena v souboru před vytvořením archivu.

2. Upravte oprávnění na výchozí hodnotu umask:

tar xf <archive name> --no-same-permissions

Soubory mají výchozí oprávnění pro Linux.

18. Vlastnictví souboru

Tar umožňuje konfiguraci vlastnictví souboru. Chcete-li například nastavit vlastníka souboru při vytváření archivu, přidejte --owner a --group možnosti a zadejte hodnoty pro každý:

tar cf <archive> <file(s) or location(s)> --owner=<value> --group=<value>

Hodnota vlastníka představuje UID (ID uživatele), zatímco hodnota skupiny je GID (ID skupiny). Chcete-li najít tyto hodnoty pro uživatele, spusťte:

id <username>

Vytvořte například archiv a nastavte vlastnictví na root:

tar cf files.tar files --owner=0 --group=0

Tar umožňuje zachovat vlastnictví při extrahování z archivu. Chcete-li tak učinit, přidejte --same-owner možnost na konci:

tar xf <archive> --same-owner

19. Zápis do externího programu

--to-command volba nařídí tar, aby poslal každý extrahovaný soubor na standardní výstup pro externí program. Základní syntaxe je:

tar xf <archive> --to-command='<command>'

Extrahujte například soubor files.tar obsah a roura názvy souborů jako adresáře:

tar xf files.tar --to-command='mkdir $TAR_FILENAME'

Příkaz vytvoří adresáře pojmenované po každém extrahovaném souboru. Další informace a dostupné proměnné prostředí Linuxu najdete na manuálové stránce.

20. Vytvářejte denní zálohy

Chcete-li automatizovat denní zálohování, vytvořte bash skript a přidejte následující řádky:

tar czf backup-$(date +%Y%m%d).tar.gz files
find backup* -mtime +1 -delete

Příkaz tar vytvoří komprimovaný archiv, zatímco příkaz find vyhledává záložní soubory starší než jeden den. Změňte +1 parametr na +7 za týden nebo +31 pro měsíční zálohy.


Linux
  1. Linux Tee Command s příklady

  2. Příkaz linuxové hlavy s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Příkaz tar pro Linux

  3. Příklady příkazů tar v Linuxu

  1. Linux řazení příkazů s příklady

  2. Echo Command v Linuxu (s příklady)

  3. man Command v Linuxu s příklady