7z todos os arquivos no diretório, remova os originais

3

Eu tenho alguns diretórios (linux machine) cheios de arquivos * .foo altamente compactáveis.

Agora eu só tenho um script que faz gzip *.foo e gzips cada arquivo em seu próprio arquivo .gz e remove o original. O 7z irá compactar esses arquivos para metade do tamanho do gzip, então eu gostaria de mudar para isso.

Como posso usar o 7z para começar com um diretório como este

file1.foo
file2.foo
file3.foo

e acabar com

file1.foo.7z
file2.foo.7z
file3.foo.7z

Ou similar. Eu não quero todos os arquivos em um arquivo .7z.

    
por LVLAaron 01.02.2011 / 21:35

2 respostas

3
for i in *.foo; do 7za a $i.7z $i; if [ $? -eq 0 ]; then rm $i; fi; done
    
por 01.02.2011 / 21:43
0

Experimente:

find -type f -maxdepth 1 -name "*.foo" -print0 | xargs -0 -I % 7z a %.7z %

mas isso deixará o arquivo original depois de compactado.

    
por 01.02.2011 / 22:09