Terminal - Il comando zip integrato è in perdita?

3

Sto usando BASH nel terminale su Yosemite.

Il comando zip è in perdita?

Lo sto usando in questo modo

zip -er ./output.zip ./input

-e encrypt

-r recurse

Sto cercando di evitare la compressione con perdite quando eseguo il backup dei dati.

Sarebbe una salsa super debole se i miei backup uscissero corrotti: (

    
posta Kolob Canyon 25.12.2016 - 08:26
fonte

3 risposte

23

No, i file ZIP non vengono mai compressi in modo vago, né sarebbe nemmeno possibile.

Gli algoritmi di compressione lossless funzionano solo per dati che possono essere approssimati e che sono ancora riconoscibili per gli esseri umani. Immagini e audio funzionano per questo, ma non per dati arbitrari.

Gli algoritmi di compressione ZIP prendono dati arbitrari e, senza sapere di cosa si tratta, comprimono senza perdite trovando dati ridondanti e mappandoli. Non ci sarebbe modo di sapere quale parte dei dati potrebbe essere approssimata, ecco perché il software di archiviazione usa una compressione senza perdita di dati.

    
risposta data 25.12.2016 - 08:38
fonte
14

Il formato zip non usa la compressione lossy, ma il comando zip è lossy in un senso diverso - non include alcuni tipi di metadati di file specifici per Mac nell'archivio. I metadati che vengono tralasciati sono per lo più irrilevanti. Sto parlando di cose come tag di file, commenti Spotlight e così via. Per lo più.

Se ciò non è abbastanza buono per te, puoi utilizzare ditto , con le opzioni appropriate. Ecco un esempio tratto dalla % man_de% man page :

ditto -c -k --sequesterRsrc --keepParent src_directory archive.zip
    
risposta data 25.12.2016 - 09:43
fonte
2

No, tutti i metodi di compressione supportati nel formato di file .zip non hanno perdite. Vedi Wikipedia .

    
risposta data 25.12.2016 - 08:39
fonte

Leggi altre domande sui tag