Descompacte o conteúdo da pasta específica no Solaris

0

Eu tento descompactar o conteúdo de uma pasta específica de um arquivo zip. Minha estrutura de arquivos zip se parece com:

  • folder1
    • folder1_1
    • file1_1
  • folder2
  • folder3
  • file1
  • arquivo2

Desejo descompactar apenas o conteúdo da pasta1.

Eu tentei usar:

unzip -d path_to_unzip/ results.zip 'folder1/*'

Infelizmente, cria uma estrutura como:

caminho_para_unzip / pasta1 / pasta_1_1 etc ...

Como posso arquivar para me livrar da pasta desnecessária1?

Muito obrigado antecipadamente!

    
por user3410442 25.10.2017 / 07:34

1 resposta

0

How can I archieve to get rid of the unnecessary folder1?

Como Ignacio apontou corretamente, unzip não pode.

Eu proporia algo assim:

TMPDIR='mktemp -d' || exit 1
unzip -d ${TMPDIR}/ results.zip 'folder1/*'
mv ${TMPDIR}/folder1/* path_to_unzip/
rm -r ${TMPDIR}

Basicamente, como mv operações de arquivo em um único sistema de arquivos são atômicas, como em, executadas "quase" imediatamente, não há impacto real no desempenho ... desde que seu /tmp esteja no mesmo sistema de arquivos que o caminho de destino . Se não for eo arquivo ZIP é de grande tamanho, você deve extraí-lo para uma pasta temporária no sistema de arquivos de destino. Aqui, pegamos o pai do diretório de destino:

TMPDIR='mktemp -p path_to_unzip/.. -d' || exit 1
    
por 25.10.2017 / 08:43

Tags