for i in *.foo; do 7za a $i.7z $i; if [ $? -eq 0 ]; then rm $i; fi; done
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.
Experimente:
find -type f -maxdepth 1 -name "*.foo" -print0 | xargs -0 -I % 7z a %.7z %
mas isso deixará o arquivo original depois de compactado.
Tags compression linux