Crie um arquivo tar que armazene nomes de arquivos, mas não o conteúdo dos arquivos

Crie um arquivo tar que armazene nomes de arquivos, mas não o conteúdo dos arquivos

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 newdirnão existe (ainda) e --attributes-onlysignifica

Copie apenas os atributos especificados do arquivo de origem para o destino. […]

Isso não copiará dados; arquivos regulares newdirterã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, -avocê pode usar opções mais específicas para replicar apenas os atributos que realmente precisa.

De qualquer forma, depois de criar newdirarquivos vazios, simplesmente tareste diretório em vez de olddir.

Responder2

starapoia 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).

starfaz parte do schilytools.

informação relacionada