Exclui um arquivo dentro de vários arquivos ZIP na linha de comandos do OS X

1

Estou tentando excluir arquivos com extensões específicas de vários arquivos zip.

Por exemplo, eu quero excluir todos os arquivos .html contidos nos arquivos zip no caminho atual, então tentei o seguinte:      zip -d *.zip '*.html'

Isso funciona para o primeiro zip encontrado, mas não prossegue. Alguma sugestão de como fazer isso no OSX?

    
por Don Giovanni 20.10.2014 / 20:06

1 resposta

2

O problema é que *.zip será expandido para todos os arquivos ZIP antes de ser passado para o comando zip .

Faça isso com um simples loop:

for f in *.zip; do zip -d "$f" '*.html'; done

Se você tem o Zsh, esse tipo de loop é um pouco mais curto:

for f (*.zip) zip -d "$f" '*.html'

Se você quiser recursar em subpastas, com as ferramentas padrão do OS X, use find :

find /path/to/files -type f -name '*.zip' -exec zip -d {} '*.html' \;
    
por 20.10.2014 / 20:28