Como extrair um conjunto de arquivos zip de um arquivo zip

1

Existe um comando para extrair um conjunto de arquivos zip dentro de outro arquivo zip e não extrair tudo isso? por exemplo:

A.zip tem (B.zip, C.zip, c_directory, d.txt) Como pode extrair B.zip e C.zip sem extrair c_directory nem d.txt?

Precisamos comparar o conteúdo em B.zip e C.zip e procurar suas diferenças comparando o tamanho dos arquivos dentro deles.

obrigado a todos.

    
por chz 24.03.2013 / 04:14

1 resposta

0

De acordo com man unzip :

NAME
   unzip  -  list, test and extract compressed files in a ZIP ar‐
   chive

SYNOPSIS
   unzip   [-Z]   [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]]   file[.zip]
   [file(s) ...]  [-x xfile(s) ...] [-d exdir]


  [file(s)]
          An optional list of archive members  to  be  processed,
          separated  by  spaces.   (VMS  versions  compiled  with
          VMSCLI defined must delimit files with commas  instead.
          See  -v  in OPTIONS below.)  Regular expressions (wild‐
          cards) may be  used  to  match  multiple  members;  see
          above.   Again, be sure to quote expressions that would
          otherwise be expanded or modified by the operating sys‐
          tem.

Em outras palavras, os argumentos dados após o nome do arquivo são considerados como a lista de arquivos que você deseja extrair:

$ unzip A.zip B.zip C.zip 

Se você quiser comparar o conteúdo de dois arquivos zip, você poderia apenas listar os arquivos em cada arquivo e comparar as listas. As opções -lqq farão com que unzip liste os arquivos em um arquivo:

 $ unzip -lqq A.zip 
  424  2013-03-24 04:39   B.zip
  424  2013-03-24 04:39   C.zip
  424  2013-03-24 04:39   d.txt

Então, para comparar dois arquivos, liste os arquivos em cada um, salve em um arquivo de texto e compare os arquivos de texto:

$ unzip -lqq A.zip | sort > A_files.txt
$ unzip -lqq D.zip | sort > D_files.txt
$ diff A_files.txt D_files.txt | grep '<\|>'
<         0  2013-03-24 04:57   only_in_A.txt
>         0  2013-03-24 04:57   only_in_D.txt
    
por 24.03.2013 / 04:39

Tags