
Basicamente, quero criar uma imagem tar de uma estrutura de pastas, mas não armazenar o conteúdo real do arquivo. Então, quando eu descompactar o arquivo, quero obter as pastas originais, nomes de arquivos, carimbos de data e hora, etc., mas todos os arquivos de comprimento zero em vez do conteúdo original do arquivo.
A intenção aqui é capturar a estrutura de pastas de uma pasta gigantesca (tamanho de gigabytes) sem criar um arquivo tar de vários gigabytes.
Desde já, obrigado.
Responder1
Se o seu cp
époderoso o suficiente, você consegue fazer isso:
cp -a --attributes-only olddir newdir
Onde newdir
não existe (ainda) e --attributes-only
significa
Copie apenas os atributos especificados do arquivo de origem para o destino. […]
Isso não copiará dados; arquivos regulares newdir
terão tamanho zero. Observe que você precisa ser root para replicar todos os atributos (por exemplo, propriedade), então talvez você precise do sudo cp …
. Em vez disso, -a
você pode usar opções mais específicas para replicar apenas os atributos que realmente precisa.
De qualquer forma, depois de criar newdir
arquivos vazios, simplesmente tar
este diretório em vez de olddir
.
Responder2
star
apoia isso há 18 anos.... tente:
star -c -dump -meta ... | star -tv
Isso lista todas as entradas como arquivos do tipo 'm'eta...
star -c -dump -meta ... | star -C todir -xmeta
extrai todos os arquivos em arquivos de tamanho 0 byte.
star -c -dump -meta ... | star -C todir -xmeta -force-hole
extrai todos os arquivos como arquivos do tamanho original sem dados (arquivo esparso).
star
faz parte do schilytools.