“Mac-style” descompactando no linux

6

Estou usando a edição Linux Mint MATE, caso isso seja relevante.

Eu não sei se isso é específico do Dropbox, mas quando eu baixo um zip de uma pasta que foi originalmente produzida em um Mac (e que tem muitas subpastas aninhadas) do dropbox, e descompacte na minha máquina Linux, está completamente confuso: todas as pastas têm uma duplicata com uma versão reduzida do seu nome, e os subarquivos aparecem na duplicata em vez do original. Se um dos meus colegas de Mac descompacta o mesmo zip, tudo bem.

Isso é o que eu devo receber:

Eissoéoqueeurealmenteobtenho:

Meu palpite é que isso está de alguma forma relacionado ao fato de que os Macs não fazem distinção entre maiúsculas e minúsculas com nomes de arquivos e, portanto, há alguma estranha incompatibilidade entre os metadados do sistema de arquivos, ou algo assim.

Alguém sabe de uma ferramenta linuz unzip que replica o comportamento do unzipper do Mac ou produz o resultado correto? Eu não me importo se deixar a pasta_MACOSX lá (eu posso simplesmente deletar isso), contanto que a pasta principal esteja bem.

    
por Max Williams 14.03.2016 / 13:28

1 resposta

3

Parece que o problema é que o arquivo zip usa variações de maiúsculas e minúsculas inconsistentes para nomes de diretório. É exatamente isso que o sistema de arquivos ciopfs serve para: ele fornece uma visão sem distinção entre maiúsculas e minúsculas de uma árvore de diretórios. Existe um pacote do Ubuntu. Crie uma visualização de um diretório existente montando o sistema de arquivos ciopfs em um diretório temporário, descompacte o zip dentro dessa visualização e obterá o arquivo extraído no diretório original.

mkdir ~/case-insensitive
ciopfs ~/temp ~/case-insensitive
cd ~/case-insensitive
unzip -x __MACOSX -x '__MACOSX/*' /path/to/zip
cd ~/temp
fusermount -u ~/case-insensitive

Se isso não funcionar por algum motivo, meu próximo candidato seria a biblioteca Python zipfile ( exemplo ).

    
por 15.03.2016 / 01:07