Como faço para recursivamente zipar todas as subpastas em um diretório?

4

Atualmente, tenho esta estrutura de diretórios:

/Downloads
    /Download 1/
    /Download 2/
    /Download 3/
    ...

Eu gostaria de ter essa estrutura de diretórios:

/Downloads
    Download 1.zip
    Download 2.zip
    Download 3.zip
    ...

Essencialmente, desejo zipar o Download 1 para Download 1.zip e, em seguida, remover o Download 1. Qual seria a maneira mais rápida / fácil de conseguir isso? Estou executando o Ubuntu 12.04.

A razão pela qual estou perguntando é porque essa pasta é compartilhada na minha rede local. Quando as pessoas perguntam isso no meu Apache Web Server, eu quero que eles baixem Download 1 , então eu preciso que seja um arquivo zip.

    
por sameetandpotatoes 01.12.2013 / 15:39

1 resposta

6

tente com o comando Eu tentei na imagem, espero que isso ajude você.

Para remover você só pode adicionar uma linha extra que

rm -rf $i

O comando total pode ser como

 for i in ~/sandbox/*; do zip -r "$i".zip "$i"; rm -rf "$i"; done

O comando que exclui Pastas depois de verificar a criação bem-sucedida do Zip.

for i in ~/sandbox/*; do zip -r "$i".zip "$i" && rm -rf "$i"; done

Obrigado @evilsoup por perceber. espero que ajude.

    
por Ten-Coin 01.12.2013 / 16:24