Qual è la differenza tra .tar.gz e .gz o .tar.7z e .7z?

144

Recentemente, ho eseguito il backup di molti dei miei dati e ho notato che posso salvare i file come .gz o .tar.gz , o .7z e .tar.7z , eccetera. Quali sono le differenze tra la variante normale e la variante .tar.* ? Quale di questi è consigliato quando si eseguono i backup?

    
posta Exeleration-G 15.04.2012 - 03:09

6 risposte

171

Se provieni da uno sfondo di Windows, potresti avere familiarità con i formati zip e rar. Questi sono archivi di più file compressi insieme.

Nei sistemi Unix e Unix (come Ubuntu), l'archiviazione e la compressione sono separate.

tar mette più file in un singolo file (tar).

gzip comprime un file (solo).

Quindi per ottenere un archivio compresso, unisci i due, usa prima tar o pax per ottenere tutti i file in un singolo file (archive.tar), quindi gzip it (archive.tar.gz) . Se hai solo un file da comprimere (notes.txt), non c'è bisogno di tar, quindi fai solo gzip notes.txt che risulterà in notes.txt.gz . Esistono altri tipi di compressione, come compress , bzip2 e xz che funzionano allo stesso modo di gzip (a parte l'uso di diversi tipi di compressione ovviamente)

    
risposta data geirha 15.04.2012 - 03:41
45

Dipende da cosa stai cercando ... Compressione o archiviazione?

Quando parlo di archiviazione, intendo preservare i permessi, la struttura delle directory, ecc ...

La compressione può ignorare la maggior parte di ciò e solo ottenere i tuoi file in pacchetti più piccoli.

Per conservare i permessi dei file, usa tar:

tar cpvf backup.tar folder

Il flag p salverà i permessi dei file. Usa il flag z per la compressione gzip o il flag j per la compressione bzip.

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Se vuoi avere un file tar puoi "aggiornare" il pacchetto tar usando il flag P:

tar cpPvf backup.tar folder

Quindi per aggiornare, sostituisci 'c' con 'u' e quando si decomprime, puoi usare 'k' per conservare i file che esistono già.

tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already

Il flag P salva i file con percorsi completi, quindi - / home / nomeutente vs home / nome utente (notare la barra diretta in avanti).

La compressione

7z offre una compressione maggiore, ma non preserva la proprietà dei file, le autorizzazioni, ecc. Rzip è un'altra utilità di compressione che offre anche una compressione comparabile con 7z.

Suppongo che un file backup.tar.7z sia solo un file tar (con permessi) compresso da un file 7z, sebbene non mi sorprenderebbe se si verificasse una piccola compressione perché 7z potrebbe non essere in grado di scaricare i metadati del file. È la capacità di 7z di escludere i metadati del file che può offrire una compressione eccezionale (tra l'altro ovviamente).

Anche la compressione dipende interamente dal tipo di dati. Alcuni file non si comprimono bene perché potrebbero essere già compressi con altri mezzi (es. .Mp3, .jpg, .tiff / con lzma, .rpm, ecc.)

    
risposta data SaultDon 15.04.2012 - 03:45
10

gzip o bzip2 non conoscono file system - nome del file, directory o struttura ad albero. Comprime solo il flusso di input, quindi il risultato dell'output. Anche gzip o bzip2 non possono archiviare le directory da sole, per questo motivo viene solitamente combinato con tar.

tar (archiver) - basta archiviare la struttura del file. gzip, bzip2 (compressor) - comprime solo l'input.

Penso che questa strategia provenga da "fai una cosa bene" filosofia Unix. Tar funziona bene? Lascia stare così com'è. Hai bisogno di più rapporto di compressione di gzip? Ecco bzip2 o 7zip.

    
risposta data Mait 15.04.2012 - 06:55
8

i suoi diversi stili di compressione, tar da solo è semplicemente archiviato (poca o nessuna compressione). tar.gz è un archivio tar ma i contenuti sono compressi da gzip (compressione moderata), quindi il .gz e tar.7z sono compressi usando 7zip (solitamente una compressione super alta)

durante il backup consiglierei tar.7z in quanto ha il più alto tasso di compressione risparmiando spazio ma utilizza un programma extra (7zip). .tar.gz saranno file più grandi e faranno lo stesso lavoro, potresti anche usare bzip (.tar.bz / bz2) anche se non sono sicuro se questo ti si addice meglio mentre uso gzip o 7zip

    
risposta data MuffinStateWide 15.04.2012 - 03:36
3

in genere, i file * .tar sono solo file tar creati dal programma tar, i programmi * .gz sono creati da gzip, * .tar.gz (a volte anche * .tgz) sono file tar gzip e * .7z vengono creati di 7zip.

Tuttavia, in Linux / Unix, è possibile nominare un file in qualsiasi modo desideri, quindi è completamente a discrezione del creatore dei file.

    
risposta data G. He 15.04.2012 - 03:21
3

Tar (Tape Archiver) è stato tradizionalmente utilizzato come contenitore in Unix / Linux per il pacchetto di file per il movimento. Imballa la struttura del file e conserva gli attributi del file, ma non comprime i file.

I programmi di compressione comprimono il file per renderlo più piccolo, ma potrebbero non gestire più file e / o potrebbero non gestire gli attributi del file necessari per Linux. Poiché tar esiste già ed è ben supportato, non vi è alcun motivo per archiviare i programmi per duplicare questa funzionalità, che è specifica della piattaforma (diversa per Windows e Linux). Inoltre, diversi programmi di compressione possono avere risultati diversi su diversi tipi di file, quindi è preferibile scegliere tra più di uno.

    
risposta data Marty Fried 15.04.2012 - 03:34

Leggi altre domande sui tag