Como compactar / compactar várias pastas individualmente em um diretório usando o Unix?

0

Como compactar / compactar várias pastas individualmente em um diretório usando o Unix?

por exemplo, em uma diretiva X: Eu tenho as pastas a, b, c etc. Eu tenho que compactá-las como a.zip, b.zip e c.zip. mesmo eu não sei os nomes das pastas são como a, b, c temos isso dinamicamente.

    
por Rohin 28.08.2012 / 22:58

1 resposta

1

Supondo que você deseja arquivos zip,

cd /mydir/foo
find . -type d -d 1 -exec zip -r {} {} \;

Isso criará um arquivo zip para cada diretório em / mydir / foo.

EDITAR: o que esta linha de comando faz (lembre-se de nunca copiar e colar um comando do terminal que você não entende, é perigoso)

find . -type d -d 1 -exec xxx

encontrará todos os itens dentro. (no nosso caso / mydir / foo), do tipo d para o diretório, então execute o comando xxx

zip -r {} {}

é simplesmente o comando zip, (sinta-se livre para adicionar as opções necessárias, -r significa recursivo), usando como primeiro argumento (arquivo zip) e segundo (fonte) a string especial {} que é alimentada por find com toda combinação. \; é simplesmente um terminador para informar que o comando -exec acabou, escapou corretamente para não ser mal interpretado pelo shell

    
por 28.08.2012 / 23:44

Tags