GNU/Linux >> Znalost Linux >  >> Linux

Začínáme s příkazem Tar

Co je dehet? Tar je zkratka pro „tape archive“ a odkazuje na praxi z dřívějších dnů výpočetní techniky, kdy byla data zálohována na pásky. Navzdory nostalgickému původu názvu je tar velmi výkonný a využívá moderní technologie k archivaci a kompresi souborů.

Obnovte základy:Archiv vs komprese

Příkaz tar je pro uživatele Linuxu důležitý, aby mu rozuměli. Než se dostaneme příliš hluboko do tématu, začněme s malým objasněním.

  • Archivace – Akt ukládání více souborů jako jednoho souboru.
  • Komprese – zmenšení většího souboru nebo souborů.

Tar je archivační nástroj. Vytváří jeden soubor z více souborů. To šetří šířku pásma sítě, čas a výpočetní výkon při přenosu souborů. Jeden soubor o velikosti 100 MB zabere mnohem méně než přenos 100 souborů o velikosti 1 MB kvůli režii souboru.

To je důvod, proč často najdete software dostupný v „tarballu ‘. Tarball je běžný termín používaný pro soubor tar.

I když tar sám o sobě nemůže komprimovat soubory, můžete ke komprimaci souborů při vytváření tarballu použít jeden z běžných kompresních algoritmů. Ukážu vám, jak to udělat později v tomto základním tar tutoriálu.

Běžné soubory tar

Zde jsou některé z běžných „souborů tar“, které najdete:

.Tar :Toto je soubor tarball. Je to pouze archiv a neprovádí se žádná komprimace.

.Tar.Gz nebo .tgz :Toto je rozšíření archivu, který byl komprimován pomocí Gzip.

.Tar.Bz2 nebo .tbz :Toto je rozšíření archivu, který byl komprimován pomocí Bz2. Jedná se o relativně novou technologii. Vyznačuje se vyšším poměrem komprese, ale tato zvýšená smršťovací síla znamená, že dokončení trvá o něco déle.

.Tar.xz nebo .txz atd. :Tar také obsahuje integrovanou podporu pro xz, lzip a další. Tyto nástroje primárně používají stejný kompresní algoritmus LZMA. Populární 7z, který se stal poměrně běžným v prostředí Windows, také používá tento algoritmus. Další rozdíly v souborech vyplývají ze struktury a metadat. Nebudu zabíhat do těchto podrobností v našich příkladech, ale chtěl jsem je zmínit.

Je důležité si uvědomit, že rozšíření nejsou nutná na Linuxu a dalších unixových systémech. Váš unixový systém obvykle dokáže identifikovat soubory podle jejich záhlaví bez ohledu na příponu, ale použití běžného schématu pojmenování může pomoci vyhnout se nejasnostem. Chcete-li zjistit typ souboru, můžete použít příkaz file v Linuxu.

Příklady příkazů Tar

V tomto článku chci demonstrovat některé běžné metody archivace a komprimace souborů pomocí tar.

Ve složce Dokumenty jsem shromáždil několik souborů různých typů. Existují obrázky a některé textové soubory. Na několika příkladech se podíváme na to, jak se velikost souboru mění kompresí.

Zde je úplný seznam dokumentů, které budou použity.

[email protected]:~/Documents$ ll
total 7404
drwxr-xr-x  2 christopher christopher    4096 May  5 10:55 ./
drwxr-xr-x 17 christopher christopher    4096 May  5 10:59 ../
-rw-r--r--  1 christopher christopher 5094932 Apr 30 23:54 aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem1.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem2.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:57 lorem3.txt
-rw-r--r--  1 christopher christopher   13268 Apr 30 23:56 lorem.txt
-rw-r--r--  1 christopher christopher 2411919 Apr 30 23:54 mountain-range-2397645.jpg

Už jsem se dotkl schopností dehtu. Je to mocný nástroj se spoustou možností. Různé možnosti a typy souborů mohou způsobit, že příkaz bude vypadat složitější, než ve skutečnosti je. Jako vždy je mým cílem demystifikovat příkazový řádek. Než tedy zkombinujeme několik možností v příkladech, rozdělme si věci na menší kousky.

Zde je tabulka běžně používaných možností. Pamatujte, že toto je jen začátek. Doporučuji, abyste si sami prošli dokumentaci nápovědy, abyste našli ještě více možností, až se budete cítit pohodlně.

Přepnout Rozsáhlé možnosti Popis
-c, –vytvořit vytvořit nový archiv
-d, –diff, –compare najít rozdíly mezi archivem a systémem souborů
-r, –připojit připojit soubory na konec archivu
-t, –seznam seznam obsahu archivu
-u, –aktualizace připojujte pouze soubory novější než kopie v archivu
-x, –extrahovat, –get rozbalit soubory z archivu
-j, –bzip2 filtrovat archiv přes bzip2
-z, –gzip, –gunzip, –ungzip filtrujte archiv přes gzip

1) Vytvořte tarball

Dříve jsem zmínil běžné typy souborů spojené s příkazem tar. Toto je možná nejzákladnější.

tar cvf output_tarball.tar source_directory

Komprese nebude použita, takže soubor bude zabírat alespoň tolik místa jako soubory ve složce dokumentů.

[email protected]:~$ tar cvf doc.tar ~/Documents

tar cvf (create, verbose, file-archive):vytvoří nový soubor tar s názvem doc.tar ze všech souborů v ~/Documents.

[email protected]:~$ ll doc.tar
-rw-r--r-- 1 christopher christopher 7567360 May  5 11:00 doc.tar

Pamatujte, že tarball bude mít stejnou adresářovou strukturu jako váš zdrojový adresář tarballu.

2) Vytvořte gzip tarball

Vyzkoušejte kompresi gzip při vytváření tarballu.

[email protected]:~$ tar cvzf doc.tar.gz ~/Documents

tar cvzf (create, verbose, g-zip, file-archive):vytvoří nový tar soubor s názvem doc.tar.gz ze všech souborů v ~/Documents. Při vytváření tarballu používá kompresi gzip (s možností z).

[email protected]:~$ ll doc.tar.gz 
-rw-r--r-- 1 christopher christopher 7512498 May  5 11:01 doc.tar.gz

Jak můžete vidět, velikost gzipovaného tarballu je o 54 862 bajtů (53 MB) méně než normální nekomprimovaný tarball.

Věnujte pozornost používání spojovníku – s možnostmi tar

Obvykle, když používáte volby s příkazem Linuxu, přidáte před volby pomlčku (-).
Pomlčka před možnostmi není povinná a je lepší se jí vyhnout. Proto jsem to v příkladech nepoužil.
Pokud použijete pomlčku před možnostmi, měli byste vždy ponechat f na konci možností. Pokud použijete tar -cvfz, z se stane argumentem pro volbu z. A pak uvidíte chybu, jako je tato:

tar:doc.tar.gz:Nelze stat:Žádný takový soubor nebo adresář

Proto je dobrým zvykem používat možnost f na konci všech ostatních možností, takže i když pomlčku použijete ze zvyku, nezpůsobí to problém.

3) Vytvořte tarball bz2

Řekněme, že chcete vytvořit tarball bz2. Kroky jsou stejné jako předchozí. Stačí změnit volbu z (gzip) na j (bz2). Podívejte se na tabulku možností, kterou jsem zmínil dříve.

[email protected]:~$ tar cvjf doc.tar.bz2 ~/Documents

tar cvfj (create, verbose, bz2 type, file-archive).

[email protected]:~$ ll doc.tar.bz2
-rw-r--r-- 1 christopher christopher 7479782 May  5 11:04 doc.tar.bz2

Všimněte si velikosti? Je to ještě méně než gzipovaný tarball.

4) Seznam obsahu tarballu

Můžete použít -t volba (místo -c) pro zobrazení obsahu archivního souboru. Funguje to stejně, ať je soubor komprimovaný nebo ne. Zobrazí se aktuální velikost souboru, nikoli komprimovaná velikost.

[email protected]:~$ tar tvf doc.tar
drwxr-xr-x christopher/christopher 0 2020-05-05 10:55 home/christopher/Documents/
-rw-r--r-- christopher/christopher 5094932 2020-04-30 23:54 home/christopher/Documents/aerial-view-of-bushes-on-sand-field-3876435.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem1.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:56 home/christopher/Documents/lorem.txt
-rw-r--r-- christopher/christopher 2411919 2020-04-30 23:54 home/christopher/Documents/mountain-range-2397645.jpg
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem3.txt
-rw-r--r-- christopher/christopher   13268 2020-04-30 23:57 home/christopher/Documents/lorem2.txt

5) Přidat další soubory do tarballu

Soubory můžete připojit k archivu tarball pomocí -r . Nemůžete přidávat soubory do komprimovaného archivu, aniž byste je nejprve rozbalili pomocí příkazu tar.

Můžete také připojit pomocí -u možnost aktualizace. Tato možnost má pouze přidat nové soubory podle nápovědy, ale v mé praxi to fungovalo stejně jako připojení, přidání nových kopií všech souborů.

[email protected]:~$ tar rvf doc.tar ~/Documents/

6) Extrahujte tarball

Nyní, když jste viděli, jak různé typy komprese ovlivňují celkovou velikost souboru, pojďme se podívat na extrahování těchto souborů.

[email protected]:~$ cd docs
[email protected]:~/docs$ tar xvf ~/doc.tar.gz 

Přešel jsem do nového adresáře s názvem docs. Potom jsem použil tar xvf (extract, verbose, file-archive) k rozbalení obsahu zde.

[email protected]:~/docs/home/christopher/Documents$ ls
aerial-view-of-bushes-on-sand-field-3876435.jpg  lorem1.txt  lorem2.txt  lorem3.txt  lorem.txt  mountain-range-2397645.jpg

Je důležité si uvědomit, že tar zachovává strukturu souborů, takže když extrahuji soubory, jsou v /home/christopher/Documents. Abyste tomu zabránili, můžete se přepnout do požadovaného adresáře (~/Documents) a zkopírovat všechny soubory pomocí zástupného znaku * namísto adresářové struktury.

7) Extrahujte tarball do konkrétního adresáře

Ve výchozím nastavení je obsah tarballu extrahován do aktuálního adresáře. To není vždy žádoucí.

Tarball můžete extrahovat do konkrétního adresáře následujícím způsobem:

tar xvf tar_file -C destination_directory

Cílový adresář musí existovat, takže se ujistěte, že jste jej předem vytvořili pomocí příkazu mkdir.

Shrnutí

Zde je to, co musíte mít na paměti při používání tar v Linuxu:
Téměř vždy se používá ve formátu tar cf nebo tar xvf. Pamatujte si toto:

  • c znamená vytvořit:Používáte jej k vytvoření tarballu
  • x znamená extrakt:Používáte jej k extrahování tarballu
  • f znamená soubor:Používáte jej pro název souboru tar (pro vytváření i extrahování). Zkuste jej použít na konci možností.
  • v znamená verbose:Je volitelné, ale ukazuje, co se s příkazem děje.

    Samozřejmě nemůžete použít obě možnosti c a x ve stejném příkazu tar.

Závěr

Líbil se vám náš průvodce příkazem tar? Doufám, že vás všechny tyto tipy naučily něco nového.

Pokud se vám tato příručka líbí, sdílejte ji na sociálních sítích. Pokud máte nějaké připomínky nebo dotazy, zanechte je níže.

Pokud máte nějaké návrhy na témata, která byste rádi viděli, klidně je také zanechte. Děkuji za přečtení.


Linux
  1. Začínáme se Zsh

  2. Začínáme s příkazem tac systému Linux

  3. Začínáme s Multipass – spouštění virtuálních počítačů Ubuntu

  1. Začínáme s linuxovým příkazem cat

  2. Začínáme s ls

  3. Začínáme s PostgreSQL na Linuxu

  1. Začínáme s GnuCash

  2. Začínáme s Etcher.io

  3. Začínáme s regulárními výrazy