GNU/Linux >> Linux Esercitazione >  >> Linux

Quale è più efficiente:compressione tar o zip? Qual è la differenza tra tar e zip?

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.


Linux
  1. Qual è la differenza tra la scrittura su un file e una memoria mappata?

  2. Qual è la differenza tra strtok_r e strtok_s in C?

  3. Qual è la differenza tra fsync e syncfs?

  4. Qual è la differenza tra fsck ed e2fsck?

  5. Qual è la differenza tra ls e l?

Qual è la differenza tra Linux e Unix?

La differenza tra più, meno e la maggior parte dei comandi

Qual è la differenza tra Login e Non-Login Shell

Qual è la differenza tra il comando apt e apt-get?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?