Comandos ou scripts do shell para descompactar, adicionar arquivo de texto e compactar novamente

8

Criei 200 arquivos zip para o trabalho, mas percebi que esqueci de adicionar o .txt a cada um deles. Em vez de passar horas refazendo esse trabalho, agradeceria qualquer ajuda.

Existe uma maneira que alguém saiba usar o bash que descompactará, adicionará o arquivo .txt e compactará novamente todos os 200 arquivos? O nome do arquivo .txt não mudará apenas os arquivos .zip.

Obrigado.

Joshua Ivy
fonte
3
Imho, trata-se de uma ferramenta padrão do Ubuntu e, portanto, no tópico.
pLumo 28/09

Respostas:

14

Você nem precisa descompactar os arquivos, pode atualizar um arquivo existente:

zip -u existing.zip file.txt

do zipmanual:

update (-u)
    Update existing entries if newer on the file system and add new files. 
    If the archive does not exist issue warning then create a new archive.

Se você deseja adicionar uma pasta completa, adicione -r.


Para atualizar vários arquivos zip, faça algo assim:

for z in *.zip; do
    zip -u "$z" file.txt
done

Veja esta pergunta relacionada em U&L.

pLumo
fonte