O GNU Tar tem as opções - sparse ( -S ) que facilitam o trabalho com arquivos de peças sobressalentes.
Desde o início, os sistemas padrão UNIX / Linux suportam arquivos esparsos, este é um arquivo que contém espaço não utilizado que não é alocado até que seja necessário. Para revisar, para gerar através de um programa em C: crie um arquivo, posicione em 2G, escreva um byte, feche o arquivo. Fazendo um ls -l mostra o tamanho para ser 2G .... no entanto, ls -ls mostra o tamanho em blocos para estar mais perto de um arquivo de um byte. Se você acessar logicamente o arquivo (ou seja, cp sparse_file xxx), o arquivo xxx resultante conterá, na verdade, 2Gbytes totalmente alocados.
Eu criei arquivos esparsos no passado como um veículo de teste para alguns aplicativos. No entanto, a sua existência causou alguns problemas.
O problema importante é que, fora do programa 'dump', os programas de backup e procedimentos gerais acessam logicamente esse tipo de arquivo e, para um arquivo esparso de 1 byte, obtém-se um backup com dados de 0G. Isso causou algumas pessoas de backup chateado quando eu faço isso.
Alguma boa solução para este tipo de situação?
Use um programa de backup capaz de detectar e manipular arquivos esparsos corretamente. Há muitos deles por aí (a sugestão de Jeremy de tar com -S), apenas faça um item de lista de verificação na sua avaliação do sistema de backup.
Os programas de backup baseados em rsync devem ser capazes de manipular arquivos de espaço (o rsync tem as opções --sparce / -S)
O programa estrela é muito mais rápido para arquivos esparsos do que o GNU tar. Requer a opção -sparse ao manipular tais arquivos. Para apenas copiar, use cp --sparse = auto
Tags backup files filesystems