GNU/Linux >> Linux Esercitazione >  >> Linux

Comprimere una cartella con tar?

A tar e gzip una cartella, la sintassi è:

tar czf name_of_archive_file.tar.gz name_of_directory_to_tar

Il - con czf è facoltativo.

Se vuoi tar la directory corrente, usa . per designarlo.

Per costruire dinamicamente nomi di file, usa il date utility (guarda la sua pagina man per le opzioni di formato disponibili). Ad esempio:

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

Questo creerà un file chiamato qualcosa come 20120902-185558.tar.gz .

Su Linux, è probabile che tu sia tar supporta anche la compressione BZip2 con j anziché z opzione. E forse altri. Controlla la pagina man sul tuo sistema locale.


Esempi per gli algoritmi di compressione più comuni

Il titolo della domanda per questo è semplicemente "Comprimi una cartella con tar?" Poiché questo titolo è molto generico, ma la domanda e la risposta sono molto più specifiche, e dato l'elevato numero di visualizzazioni che questa domanda ha attirato, ho ritenuto utile aggiungere un elenco aggiornato di esempi di entrambi archiviazione/compressione ed estrazione/decompressione, con vari algoritmi di compressione comunemente usati.

Questi sono stati testati con Ubuntu 18.04.4. Sono molto semplici per l'uso generale, ma potrebbero essere facilmente integrati nei contenuti delle domande più specifiche del PO utilizzando le tecniche nella risposta accettata e gli utili commenti sopra.

Una cosa da notare per il pubblico più generico è che tar non aggiungerà le estensioni necessarie (come .tar.gz ) automaticamente - l'utente deve aggiungerli esplicitamente, come mostrato nei comandi seguenti:

# 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

Vedi la pagina man di tar (meglio usare man tar sulla macchina specifica) per ulteriori dettagli. Di seguito riassumo le opzioni utilizzate sopra direttamente dalla pagina man:

-c, --crea
crea un nuovo archivio

-x, --extract, --get
estrarre i file da un archivio

-v, --prolisso
elenca dettagliatamente i file elaborati

-z, --gzip
filtrare l'archivio tramite gzip

-j, --bzip2
filtra l'archivio tramite bzip2

-J, --xz
filtra l'archivio tramite xz

-f, --file=ARCHIVIO
usa il file di archivio o il dispositivo ARCHIVE

Non c'è bisogno di aggiungere - davanti alle opzioni combinate, o il = segno tra f opzione e il nome del file.

Ho tratto tutto questo dal mio recente articolo, che sarà ulteriormente ampliato in un articolo molto più completo man mano che avrò tempo per lavorarci.


Linux
  1. Come eseguire il tar (comprimere) i file, escludendo determinati file o directory

  2. Come archiviare e comprimere file su Linux

  3. Comando tar di Linux

  4. Apertura di un file .tar.gz con un singolo comando

  5. Formato archivio indicizzato?

Comando tar in Linux con esempi

Tar Vs Zip Vs Gz:differenza ed efficienza

Comando tar di Linux – Come comprimere file in Linux

Monta una cartella remota con sshfs

Guida introduttiva al comando Tar

The Ultimate Tar Command Tutorial con 10 esempi pratici