Posso mandar o 7z pular a compressão (mas não a inclusão) de arquivos específicos ao comprimir um diretório com seus subs?

5

Há um recurso do archiver do WinRAR (para Windows) que eu amo muito: ele pode ser configurado para ignorar a tentativa de compactar arquivos específicos (com base em sua extensão (padrão de nome)), incluindo-os em um arquivo compactado. Quando se trata de fazer backup de um diretório home de um usuário, ele economiza muito tempo para desistir de tentar compactar arquivos mp3, jpg, zip, etc. e apenas adicioná-los a um arquivo (não sólido) intacto durante a compactação de texto, xls, banco de dados arquivos sendo adicionados.

Tendo mudado para o Linux eu ainda prefiro strongmente compactadores não-sólidos (como zip e 7z, eu uso principalmente 7z eu mudei para antes mesmo de mudar para o Linux) sobre tar.gz tradicional por minha própria conveniência (tar.gz Os defensores costumam dizer que é necessário salvar informações e links de direitos / propriedade, mas eu não uso nenhum em meus arquivos que não são do sistema).

Mas eu sinto falta do recurso do WinRAR para pular muito a compressão de arquivos específicos. Você pode ser um fã do 7z também, talvez você saiba o caminho para conseguir o efeito?

    
por Ivan 03.02.2012 / 19:12

1 resposta

1

Normalmente, isso é feito usando tar , mas se você realmente quiser ignorar a compactação, defina o nível de compactação como 0.

Como não tenho a GUI e realmente não a uso, talvez seja necessário escrever um script para fazer o que você precisa, por exemplo, eu uso o PERL, mas você pode fazer da maneira que quiser. Este em particular irá pular os arquivos jpg .

my $archive = "/home/user/archive.zip";
for $file @filenames
{
    my $compression_level = 9;
    $compression_level = 0 if($file =~ /jpg$/);
    '7za a -tzip -mx=$compression_level $archive $file';
}

Você provavelmente pode obter o quanto quiser com os scripts, mas isso é com você.

    
por 03.02.2012 / 20:23

Tags