I file ZIP creati con GUI hanno più byte dei file ZIP creati in una shell

15

Ho creato due file ZIP della stessa directory. Uno con la GUI, l'altro con:

$ zip -r alpha_cmd.zip Alpha

La directory Alpha è 33.640 MB con 164 elementi.

Il file ZIP creato dalla GUI è di 2.100 byte più grande del file ZIP creato sulla riga di comando.

Perché il file ZIP creato con la GUI è più grande?

Nota : anche se i file ZIP hanno dimensioni diverse, quando vengono decompressi, ciascuna directory ha lo stesso numero esatto di byte. Fondamentalmente, sono molto cauto nei confronti di possibili incoerenze introdotte gestendo il mio file system con la GUI e con i comandi della shell.

    
posta david 07.07.2015 - 17:31
fonte

2 risposte

20

Chiusura lampo dal Finder aggiunge una cartella __MACOSX, invisibile su Mac, che contiene fork delle risorse OS X come icone personalizzate e così via. Da Wikipedia :

The resource fork is a fork or section of a file on the Apple Mac OS operating system used to store structured data along with the unstructured data stored within the data fork. A resource fork stores information in a specific form, containing details such as icon bitmaps, the shapes of windows, definitions of menus and their contents, and application code (machine code). For example, a word processing file might store its text in the data fork, while storing any embedded images in the same file's resource fork. The resource fork is used mostly by executables, but every file is able to have a resource fork.

    
risposta data 07.07.2015 - 17:54
fonte
4

Anche a parte la causa principale in questo caso (il Finder aggiunge elementi nascosti extra, come dice empedocle), diverse dimensioni per ZIP degli stessi dati non indicano un problema, quando la differenza di dimensioni è una frazione di una percentuale.

Diverse implementazioni ZIP potrebbero avere un diverso livello di compressione predefinito (compromesso tra tempo di CPU e dimensioni salvate), o semplicemente avere un codice diverso che salva più o meno corrispondenze, risparmiando più o meno byte al livello di compressione predefinito.

Ad esempio, 7-Zip di solito rende più piccoli .zip file rispetto ad altri programmi ZIP. (E no, non sto parlando del proprio formato di file .7z . Ha anche un compressore ZIP semplice.

zipcmp è un programma cmdline in grado di confrontare i file ZIP. Per impostazione predefinita, confronta solo la directory ZIP per verificare che tutti i file abbiano lo stesso nome, dimensioni e CRC . Se questo è il caso, entrambi i file ZIP sono quasi certi di avere gli stessi contenuti, ma solo compressi in modo diverso (se la dimensione compressa differisce). Purché i file ZIP non siano danneggiati, ovviamente. Usa unzip -t foo.zip per testare un file ZIP per errori di decompressione, CRC non corrispondenti, ecc.

    
risposta data 07.07.2015 - 19:34
fonte

Leggi altre domande sui tag