Komprimovat složku pomocí tar?

Pokouším se komprimovat složku (/var/www/) do ~/www_backups/$time.tar kde $time je aktuální datum.

Toto mám:

cd /var/www && sudo tar -czf ~/www_backups $time" 

Jsem úplně ztracen a už jsem v tom celé hodiny. Nejste si jisti, zda je -czf správný. Jednoduše chci zkopírovat veškerý obsah v /var/www do $time.tar souboru a chci zachovat oprávnění souboru pro všechny soubory. Může mi někdo pomoci?

Komentáře

  • potřebujete " na druhé straně $time také.

Odpověď

Na tar a gzip složka, syntaxe je:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar 

The - s czf je volitelný.

Pokud chcete tar aktuální adresář, použijte . k označení.

Chcete-li dynamicky vytvářet názvy souborů, použijte obslužný program date (podívejte se na jeho manuálová stránka pro dostupné možnosti formátu). Například:

cd /var/www && tar czf ~/www_backups/$(date +%Y%m%d-%H%M%S).tar.gz . 

Tím se vytvoří soubor s názvem něco jako 20120902-185558.tar.gz.

V systému Linux je pravděpodobné, že vaše tar podporuje také kompresi BZip2 s j spíše než z volba. A možná i další. Zkontrolujte manuálovou stránku v místním systému.

Komentáře

  • To je perfektní, děkuji. Mám však jeden malý problém. Po vytvoření souboru tar z / var / www je umístěn do adresářů / var / www v souboru tar. Zde ' s kódem ' m nyní sudo tar -czf ~/www_backups/$time.tar /var/www/" Představte si, že mám soubor s názvem test.txt uvnitř / var / www. Po vytvoření tar kopie souboru, když ji extrahuji, bude umístěn do adresářů / var / www. Dává to smysl? Doufám, že ano, trochu těžké to vysvětlit. Zkontroluji podporu BZip2, děkuji za návrh!
  • Proto ' proto nejprve cd přejdete na adresář, který chcete zabalit, pak tar cf file.tar . – ten poslední . namísto zadání úplné cesty způsobí, že cesty uvnitř archivu budou relativní k aktuální adresář. Můžete také použít volbu -C pro tar (podívejte se na manuálovou stránku).
  • Jo, to fungovalo mnohem lépe. Mnohokrát děkujeme!
  • @Qwertylicious -f (z manuálové stránky) Read the archive from or write the archive to the specified file.The filename can be - for standard input or standard output.
  • U posledních verzí tar bude velká J (místo z) používat xz komprese LZMA2.

odpověď

Příklady nejběžnějších kompresních algoritmů

Název otázky je jednoduše " komprimovat a složka s tar? " Jelikož je tento název velmi obecný, otázka a odpověď jsou mnohem konkrétnější a vzhledem k velkému počtu pohledů, které tato otázka přilákala, jsem to cítil bylo by užitečné přidat aktuální seznam příkladů jak archivace / komprimace, tak extrakce / dekomprimace s různými běžně používanými kompresními algoritmy.

Ty byly testovány s Ubuntu 18.04.4. Jsou velmi jednoduché pro obecné použití, ale lze je snadno integrovat do konkrétnějšího obsahu OP pomocí technik v přijaté odpovědi a užitečných komentářích výše.

Jedna věc k poznámce pro obecnější publikum spočívá v tom, že tar nepřidá potřebná rozšíření (například .tar.gz) automaticky – uživatel je musí výslovně přidat, jak je vidět na níže uvedené příkazy:

# 1: tar (create uncompressed archive) all files and directories in the current working directory recursively into an uncompressed tarball tar cvf filename.tar * # 2: Untar (extract uncompressed archive) all files and directories in an uncompressed tarball recursively into the current working directory tar xvf filename.tar # 3: tar (create gzipped archive) all files and directories in the current working directory recursively into a tarball compressed with gzip tar cvzf filename.tar.gz * # 4: Untar (extract gzipped archive) all files and directories in a tarball compressed with gzip recursively into the current working directory tar xvf filename.tar.gz # Note: same options as 2 above # 5: tar (create bzip2"ed archive) all files and directories in the current working directory recursively into a tarball compressed with bzip2 tar cvjf filename.tar.bz2 * # Note: little "j" in options # 6: Untar (extract bzip2"ed archive) all files and directories in an tarball compressed with bzip2 recursively into the current working directory tar xvf filename.tar.bz2 # Note: same options as 2 and 4 above # 7: tar (create xz"ed archive) all files and directories in the current working directory recursively into a tarball compressed with xz tar cvJf filename.tar.xz * # Note: capital "J" in options # 8: Untar (extract xz"ed archive) all files and directories in an tarball compressed with xz recursively into the current working directory tar xvf filename.tar.xz # Note: same options as 2, 4, and 6 above 

Viz tar manuálovou stránku (nejlépe použít man tar na vašem konkrétním počítači) pro další podrobnosti. Níže shrnuji výše použité možnosti přímo z manuálové stránky:

-c, –create
vytvořit nový archiv

-x, –extract, –get
extrahovat soubory z archivu

-v, –verbose
podrobně seznam zpracovaných souborů

-z, –gzip
filtruje archiv pomocí gzip

-j, –bzip2
filtrujte archiv pomocí bzip2

-J, –xz
filtrovat archiv pomocí xz

-f, –file = ARCHIV
použít archivní soubor nebo ARCHIV zařízení

Není třeba přidávat - před kombinované možnosti nebo znak = mezi možností f a názvem souboru.

To vše jsem získal z mého nedávného článku , který bude dále rozpracován do mnohem komplexnějšího článku, protože mám čas na něm pracovat to.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *