it-swarm-eu.dev

Komprimovat složku pomocí dehtu?

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

To je to, co mám:

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

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

298
qwerty

Pro složku tar a gzip je syntaxe následující:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

The - je volitelné. Pokud chcete tar aktuální adresář, použijte . označit to.

Chcete-li vytvořit svůj název souboru, použijte obslužný program date (dostupné možnosti formátu najdete v jeho manuálové stránce). Například:

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

Tím by se vytvořil soubor nazvaný něco jako 20120902-185558.tar.gz.

V systému Linux jsou šance tar také podporují kompresi BZip2 s volbou j místo z. A možná i další. Zkontrolujte manuálovou stránku v místním systému.

412
Mat

Příklady nejčastějších kompresních algoritmů

Název otázky je jednoduše „Komprimovat složku pomocí dehtu?“ Protože je tento název velmi obecný, ale otázka a odpověď jsou mnohem konkrétnější, a vzhledem k velkému počtu názorů, které tato otázka přitahovala, jsem se domníval, že by bylo užitečné přidat aktuální seznam příkladů obou archivace/komprese a extrakce/dekomprese s různými běžně používanými kompresními algoritmy.

Byly testovány s Ubuntu 18.04.4. Jsou velmi jednoduché pro obecné použití, ale mohly by být snadno integrovány do konkrétnějšího obsahu otázky OP pomocí technik v přijaté odpovědi a užitečných komentářů výše.

Pro obecnější publikum je třeba poznamenat, že tar nepřidá potřebná rozšíření (jako .tar.gz) automaticky - uživatel je musí explicitně přidat, jak je vidět v příkazech níže:

# 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

Podívejte se na dehet manuálová stránka (nejlepší použít man tar na vašem konkrétním počítači) pro další podrobnosti. Níže shrnuji možnosti použité výše přímo z manuálové stránky:

-c, - vytvoř
Vytvořte nový archiv

-x, --extract, --get
Extrahujte soubory z archivu

-v, - verbose
Podrobně seznam zpracovaných souborů

-z, - gzip
Filtrujte archiv pomocí gzip

-j, - bzip2
Filtrujte archiv pomocí bzip2

-J, - xz
Filtrujte archiv přes xz

-f, --file = ARCHIV
Použijte archivní soubor nebo zařízení ARCHIV

Není třeba přidávat - před kombinovanými možnostmi nebo = podepsat mezi volbou f a názvem souboru.

Všechno jsem dostal z mého nedávného článek , který bude dále rozšířen do mnohem komplexnějšího článku, protože na něm mám čas na tom pracovat.

3
Xitalogy