Na platformě Unix příkaz tar je primární archivační nástroj. Pochopení různých možností příkazu tar vám pomůže zvládnout manipulaci s archivními soubory.
V tomto článku si projdeme různé příklady tar včetně toho, jak vytvořit archivy tar (s kompresí gzip a bzip), extrahovat jeden soubor nebo adresář, zobrazit obsah archivu tar, ověřit integritu archivů tar, zjistit rozdíl mezi archivem tar a systémem souborů, odhadnout velikost tar archivy před jeho vytvořením atd.,
1. Vytvoření archivu pomocí příkazu tar
Vytvoření nekomprimovaného archivu tar pomocí volby cvf
Toto je základní příkaz pro vytvoření archivu tar.
$ tar cvf archive_name.tar dirname/
Ve výše uvedeném příkazu:
- c – vytvoření nového archivu
- v – podrobný seznam souborů, které se zpracovávají.
- f – následuje název archivního souboru
Vytvoření tar gzip archivu pomocí volby cvzf
Výše uvedená možnost tar cvf neposkytuje žádnou kompresi. Chcete-li v archivu tar použít kompresi gzip, použijte volbu z, jak je uvedeno níže.
$ tar cvzf archive_name.tar.gz dirname/
- z – filtrování archivu přes gzip
Poznámka: .tgz je stejné jako .tar.gz
Poznámka: Rád ponechávám volbu „cvf“ (nebo tvf nebo xvf) nezměněnou pro veškeré vytváření archivů (nebo prohlížení nebo extrahování) a na konec přidávám další možnost, která se snadněji pamatuje. tj. cvf pro vytvoření archivu, cvfz pro vytvoření komprimovaného archivu gzip, cvfj pro vytvoření komprimovaného archivu bzip2 atd., Aby tato metoda fungovala správně, nedávejte – před možnosti.
Vytvoření archivu bzip tar pomocí volby cvjf
Vytvořte archiv bzip2 tar, jak je znázorněno níže:
$ tar cvfj archive_name.tar.bz2 dirname/
- j – filtrovat archiv přes bzip2
gzip vs bzip2 :bzip2 trvá déle, než se komprimuje a dekomprimuje, než gzip. Velikost archivu bzip2 je menší než velikost gzip.
Poznámka: .tbz a .tb2 jsou stejné jako .tar.bz2
2. Rozbalení (rozbalení) archivu pomocí příkazu tar
Rozbalte soubor *.tar pomocí volby xvf
Extrahujte soubor tar pomocí možnosti x, jak je uvedeno níže:
$ tar xvf archive_name.tar
- x – extrahovat soubory z archivu
Rozbalte archiv tar gzip ( *.tar.gz ) pomocí možnosti xvzf
Použijte volbu z pro dekomprimaci archivu gzip tar.
$ tar xvfz archive_name.tar.gz
Rozbalení archivu tar bzip ( *.tar.bz2 ) pomocí volby xvjf
Použijte volbu j pro dekomprimaci tar archivu bzip2.
$ tar xvfj archive_name.tar.bz2
Poznámka: Ve všech výše uvedených příkazech je v nepovinný, který uvádí zpracovávaný soubor.
3. Výpis archivu pomocí příkazu tar
Zobrazte obsah souboru archivu tar bez rozbalování pomocí volby tvf
Před extrahováním si můžete prohlédnout obsah souboru *.tar, jak je ukázáno níže.
$ tar tvf archive_name.tar
Zobrazte obsah souboru *.tar.gz bez extrahování pomocí volby tvzf
Před extrahováním si můžete prohlédnout obsah souboru *.tar.gz, jak je ukázáno níže.
$ tar tvfz archive_name.tar.gz
Zobrazte obsah souboru *.tar.bz2 bez extrahování pomocí volby tvjf
Před extrahováním si můžete prohlédnout obsah souboru *.tar.bz2, jak je ukázáno níže.
$ tar tvfj archive_name.tar.bz2
4. Výpis obsahu souboru tar pomocí příkazu less
Když je počet souborů v archivu větší, můžete výstup taru tar snížit. Můžete však také použít příkaz less přímo k zobrazení výstupu archivu tar, jak je vysvětleno v jednom z našich předchozích článků Otevřít a zobrazit 10 různých typů souborů pomocí příkazu Linux Less – Ultimate Power of Less.
5. Extrahujte jeden soubor ze souborů tar, tar.gz, tar.bz2
Chcete-li extrahovat konkrétní soubor z archivu tar, zadejte název souboru na konec příkazu tar xvf, jak je uvedeno níže. Následující příkaz extrahuje pouze konkrétní soubor z velkého souboru tar.
$ tar xvf archive_file.tar /path/to/file
Použijte příslušnou možnost z nebo j podle metody komprese gzip nebo bzip2, jak je uvedeno níže.
$ tar xvfz archive_file.tar.gz /path/to/file $ tar xvfj archive_file.tar.bz2 /path/to/file
6. Extrahujte jeden adresář ze souborů tar, tar.gz, tar.bz2
Chcete-li extrahovat jeden adresář (spolu s jeho podadresářem a soubory) z archivu tar, zadejte název adresáře na konec příkazu tar xvf, jak je uvedeno níže. Následující text extrahuje pouze určitý adresář z velkého souboru tar.
$ tar xvf archive_file.tar /path/to/dir/
Chcete-li extrahovat více adresářů z archivu tar, zadejte tyto jednotlivé názvy adresářů na konci příkazu tar xvf, jak je uvedeno níže.
$ tar xvf archive_file.tar /path/to/dir1/ /path/to/dir2/
Použijte příslušnou možnost z nebo j podle metody komprese gzip nebo bzip2, jak je uvedeno níže.
$ tar xvfz archive_file.tar.gz /path/to/dir/ $ tar xvfj archive_file.tar.bz2 /path/to/dir/
7. Extrahujte skupinu souborů z archivů tar, tar.gz, tar.bz2 pomocí regulárního výrazu
Chcete-li extrahovat soubory odpovídající zadanému vzoru, můžete zadat regulární výraz. Například následující příkaz tar extrahuje všechny soubory s příponou pl.
$ tar xvf archive_file.tar --wildcards '*.pl'
Vysvětlení možností:
- –wildcards *.pl – soubory s příponou pl
8. Přidání souboru nebo adresáře do existujícího archivu pomocí volby -r
Do existujícího archivu tar můžete přidat další soubory, jak je znázorněno níže. Chcete-li například připojit soubor k souboru *.tar, postupujte takto:
$ tar rvf archive_name.tar newfile
Tento nový soubor bude přidán do existujícího souboru název_archivu.tar. Přidání adresáře do tar je také podobné,
$ tar rvf archive_name.tar newdir/
Poznámka: Do komprimovaného archivu nelze přidat soubor nebo adresář. Pokud se o to pokusíte, zobrazí se chyba „tar:Nelze aktualizovat komprimované archivy“, jak je uvedeno níže.
$ tar rvfz archive_name.tgz newfile tar: Cannot update compressed archives Try `tar --help' or `tar --usage' for more information.
9. Ověřte soubory dostupné v tar pomocí volby -W
Jako součást vytváření souboru tar můžete ověřit vytvořený archivní soubor pomocí možnosti W, jak je uvedeno níže.
$ tar cvfW file_name.tar dir/
Pokud plánujete odstranit adresář/soubor z archivního souboru nebo ze systému souborů, možná budete chtít archivní soubor ověřit, než to uděláte, jak je uvedeno níže.
$ tar tvfW file_name.tar Verify 1/file1 1/file1: Mod time differs 1/file1: Size differs Verify 1/file2 Verify 1/file3
Pokud výstupní řádek začíná Verify a neexistuje žádný odlišný řádek, pak je soubor/adresář OK. Pokud ne, měli byste problém prošetřit.
Poznámka: u komprimovaného archivního souboru ( *.tar.gz, *.tar.bz2 ) nelze ověření provést.
Nalezení rozdílu mezi archivem a souborovým systémem lze provést i pro komprimovaný archiv. Také zobrazuje stejný výstup jako výše s výjimkou řádků s Verify.
Hledání rozdílu mezi archivním souborem gzip a systémem souborů
$ tar dfz file_name.tgz
Hledání rozdílu mezi archivním souborem bzip2 a systémem souborů
$ tar dfj file_name.tar.bz2
10. Odhadněte velikost archivu tar
Následující příkaz odhadne velikost souboru tar (v kB) před vytvořením souboru tar.
$ tar -cf - /directory/to/archive/ | wc -c 20480
Následující příkaz odhadne velikost komprimovaného souboru tar (v kB) před vytvořením souborů tar.gz, tar.bz2.
$ tar -czf - /directory/to/archive/ | wc -c 508 $ tar -cjf - /directory/to/archive/ | wc -c 428