Suprime a extração do diretório __MACOSX ao descompactar

4

Arquivos ZIP produzidos em sistemas Mac OS X geralmente incluem um diretório __MACOSX , que é inútil, irritante e indesejado em praticamente todos os outros sistemas operacionais.

Para descompactar arquivos ZIP, eu uso Info-ZIP , que eu acho que é o unzipper padrão na maioria das distribuições Linux. Qual é a melhor maneira de ter o unzip do Info-ZIP sempre e automaticamente suprimir a extração de qualquer diretório __MACOSX que possa estar presente?

De acordo com a página unzip man, a opção -x pode ser usada para excluir diretórios do processamento e, de fato, adicionar -x __MACOSX/* ao final da minha linha de comando unzip faz o truque. Mas eu não quero ter que digitar isso o tempo todo. A man page também diz que as opções de linha de comando podem ser lidas da variável de ambiente UNZIP , mas aparentemente isso funciona apenas para aquelas opções que vêm antes do nome do arquivo (considerando -x após isso):

$ export UNZIP="-x __MACOSX/*"
$ unzip foo.zip
unzip:  cannot find or open __MACOSX, __MACOSX.zip or __MACOSX.ZIP.

Existe alguma solução melhor do que agrupar unzip em um script de shell que adiciona automaticamente -x __MACOSX/* ao final da linha de comando?

    
por Psychonaut 16.04.2015 / 12:52

1 resposta

6

Use uma função de shell:

myunzip() {
    unzip "@$" -x '__MACOSX/*'
}

myunzip foo.zip
    
por 16.04.2015 / 14:04