Criei dois arquivos ZIP do mesmo diretório. Um com a GUI, o outro com:
$ zip -r alpha_cmd.zip Alpha
O diretório Alpha tem 33.640 MB e 164 itens.
O arquivo ZIP criado pela GUI é 2.100 bytes maior que o arquivo ZIP criado na linha de comando.
Por que o arquivo ZIP criado com a GUI é maior?
Nota : Embora os arquivos ZIP tenham tamanhos diferentes, quando descompactados, o diretório de cada um tem exatamente o mesmo número de bytes. Basicamente, sou muito cauteloso com as possíveis inconsistências introduzidas gerenciando meu sistema de arquivos com a GUI e com os comandos do shell.
ditto -ck --rsrc --sequesterRsrc --keepParent folder folder.zip
Respostas:
Fechar o Finder adiciona uma pasta __MACOSX, invisível em Macs, que contém garfos de recursos do OS X, como ícones personalizados e outros. Da Wikipedia :
fonte
Mesmo além da causa principal nesse caso (o Finder adiciona itens ocultos extras, como diz o empédocle), tamanhos diferentes para ZIPs dos mesmos dados não indicam um problema, quando a diferença de tamanho é uma fração de um por cento.
Implementações ZIP diferentes podem ter um nível de compactação padrão diferente (troca entre tempo e tamanho da CPU economizados) ou apenas códigos diferentes que salvam mais ou menos correspondências, economizando mais ou menos bytes no nível de compactação padrão.
Por exemplo, o 7-Zip geralmente cria
.zip
arquivos menores que outros programas ZIP. (E não, não estou falando de seu próprio.7z
formato de arquivo. Ele também possui um compressor ZIP simples melhor.)zipcmp é um programa cmdline que pode comparar arquivos ZIP. O padrão é comparar apenas o diretório ZIP, para verificar se todos os arquivos têm o mesmo nome, tamanho e CRC . Se for esse o caso, é quase certo que os dois arquivos ZIP tenham o mesmo conteúdo, mas apenas compactados de maneira diferente (se o tamanho compactado for diferente.) Desde que os arquivos ZIP não estejam danificados, é claro. Use
unzip -t foo.zip
para testar um arquivo ZIP quanto a erros de descompressão, CRCs não correspondentes etc.fonte
/usr/bin/zip
por uma versão diferente serialn /usr/bin/zip /usr/bin/zip.standard; mv new_zip /usr/bin/zip
. Dessa forma, você sempre tem um/usr/bin/zip
, porque substitui atomicamente a implementação do sistema. Além disso, a versão antiga é renomeada, não movida para/tmp
(que pode estar em um sistema de arquivos diferente). Para desabilitá-la, basta renomeá-la parazip.disab
ver se o Finder falha e renomeá-la novamente. Mas as funções da biblioteca de criação de zip são comuns. Finder quase certamente não bifurca / exec/usr/bin/zip
.