Use uma função de shell:
myunzip() {
unzip "@$" -x '__MACOSX/*'
}
myunzip foo.zip
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?
Use uma função de shell:
myunzip() {
unzip "@$" -x '__MACOSX/*'
}
myunzip foo.zip
Tags command-line zip linux archiving