Usando zip com -T e --password ao mesmo tempo.

1

Estou invocando esse comando de um aplicativo que escrevo.

zip -rm9T --password pass123 /home/cats.zip /home/cats-data/

Estou definindo uma senha para o arquivo e estou especificando que a integridade do arquivo deve ser verificada após sua criação com a opção -T.

O problema é que as duas coisas não funcionam bem umas com as outras.

A parte de arquivamento vai bem, mas quando tenta verificar a integridade do arquivo ele não sabe a senha e espera que ela venha de stdin ... eu já dei a senha ... não sei sabe por que precisa de novo ... e de maneira tão inconveniente ...

Como posso fazer isso funcionar?

    
por Hristo Kolev 23.05.2018 / 12:39

1 resposta

1

Parece não haver um método bom para contornar essa limitação com o aplicativo zip , infelizmente. No entanto, se você estiver criando scripts, uma boa solução alternativa é usar o utilitário unzip para testar o arquivo zip na linha subsequente do seu script.

Assim, você teria algo como o seguinte (omitindo a opção -T para zip ):

zip -rm9 --password pass123 /home/cats.zip /home/cats-data/
unzip -t -P pass123 /home/cats.zip

E isso deve cumprir sua meta!

Notas:

As opções que usei para unzip são:

  • -t arquivos de teste. Essa opção extrai cada arquivo especificado na memória e compara o CRC (verificação de redundância cíclica, uma soma de verificação aprimorada) do arquivo expandido com o valor de CRC armazenado no arquivo original.
  • -P use a senha para descriptografar entradas zipfile criptografadas (se houver).
por andrew.46 25.05.2018 / 11:12