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
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, paktar 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ístoz
) 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.
$time
také.