tar
crea solo un singolo file da più file, non esegue la compressione a meno che non sia combinato un programma di compressione come gzip
o bzip2
(che puoi chiamare da tar
utilizzando il -z
o -j
opzioni, rispettivamente). zip
combina sia l'archiviazione che la compressione in un unico programma.
tar
- Presuppone che tu stia leggendo da un'estremità all'altra - "Archivio su nastro". (L'età del comando mostra...)
- Non esegue la compressione, ma puoi comprimere l'intero flusso risultante eseguendo il piping ad es. gzip e bzip2 (fatto internamente con -z o -j)
- Memorizza gli attributi dei file unix :uid, gid, permessi (in particolare eseguibili). L'impostazione predefinita può dipendere dalla tua distribuzione e può essere attivata o disattivata con le opzioni.
zip
- Memorizza gli attributi MSDOS . (Archivio, Sola lettura, Nascosto, Sistema)
- Comprime ogni file, quindi li aggiunge a un archivio
- Include una tabella di file alla fine del file
- e come risultato dei primi due, consente di leggere solo le parti esatte del file di cui hai bisogno.
Il fatto che zip comprima i file separatamente influirà sui rapporti di compressione, in particolare su molti piccoli file simili.
(Almeno questo era esattamente corretto un decennio fa.)
Tar conserva molti più metadati di Zip, vedi il mio confronto (è leggermente obsoleto):
(Fai clic per ingrandire)
Tar supera il 65% dei test, mentre Zip supera solo il 17%. Ho reso disponibile la suite di test su github con licenza BSD in modo che tu possa provare tu stesso se hai un Mac. Per Linux non sono sicuro che ci siano metadati, quindi questi test potrebbero non essere rilevanti.