tar, evitando a compactação de determinados tipos de arquivos

3

Estou tentando criar um backup muito grande de um disco rígido inteiro, usando tar . No entanto, existem muitos arquivos, como CR2 (Canon RAW 2), JPG e alguns outros arquivos que já estão compactados.

Eu tenho visto excluir esses tipos de arquivos do arquivo tar , usando a opção --exclude , mas não é isso que eu gostaria de fazer. Em vez disso, gostaria de incluir esses arquivos já compactados, mas pule a compactação sobre eles, semelhante ao de rsync ' --skip-compress .

Isso é possível, e se sim, como isso pode ser feito?

    
por perhapsmaybeharry 11.05.2016 / 10:55

2 respostas

5

O tar em si não tem esse recurso, você só pode filtrá-lo para ter dois arquivos tar independentes, um contendo os arquivos compactados, outro para os arquivos descomprimidos. Isso pode ser obtido usando a opção de exclusão tar mencionada ou criando listas de arquivos usando find .

Se você estiver aberto a alternativas, haverá dar (archive de disco) que pode decidir se deve ser compactado ou não para cada arquivo individualmente ( -Z, --exclude-compression <mask> option). Ele também pode restaurar arquivos individuais no archive sem descompactar o lote inteiro (até que o arquivo seja encontrado) como tar .

A maioria das pessoas simplesmente ignora esse problema e compacta todos os arquivos independentemente. Com um algoritmo de compressão rápida, não faz muita diferença. A compactação strong leva a ordem de grandeza mais tempo de CPU com redução de tamanho insignificante (ymmv, depende muito dos dados). Se é um arquivo que será baixado muitas vezes, a compressão strong pode valer a pena, caso contrário, pode não ser.

    
por 11.05.2016 / 11:15
2

Eu não sei como fazer isso mesmo com o GNU tar .

tar coleta os arquivos e, em seguida, compacta o fluxo resultante (na verdade, é o equivalente a tar ... | gzip > somefile.tgz ; assim, quando a compactação for aplicada, não haverá reconhecimento de arquivos individuais.

    
por 11.05.2016 / 11:11