Comando de extração básico cpio, equivalente a 'tar xzvf'?

Comando de extração básico cpio, equivalente a 'tar xzvf'?

Recebi uma distribuição de software Unix como um arquivo cpio compactado. Qual é o melhor comando para extrair os arquivos?

Responder1

gzip -cd foo.cpio.gz | cpio -idmv
  • i: extrair (entrada)
  • d: cria diretórios
  • m: preserva mtime
  • v: detalhado

Responder2

mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames

Embora esta seja uma pergunta antiga, ela aparece no Google, então pensei em atualizá-la. Concordo com a resposta aceita em geral, mas você deve adicionar "--no-absolute-filenames", a menos que pretenda substituir arquivos importantes do sistema em sua máquina. Além disso, pessoalmente, prefiro “zcat” a “gzip -cd” ou “gunzip -c”.

Finalmente, observe que você precisa executar o cpio como root (por exemplo, sudo) se estiver extraindo um sistema de arquivos raiz que contém nós de dispositivos.

Responder3

Por exemplo, para extrair o conteúdo arquivado de /etc/httpd/ para o diretório atual, criando subdiretórios ./etc/httpd/

mkdir restored-etc-httpd
cd restored-etc-httpd    
zcat archive.cpio.gz | cpio -idmv --no-absolute-filenames "*etc/httpd/*"

A resposta aceita e a de Matt foram úteis para mim, mas fiquei perplexo por um tempo por causa de três detalhes:

  1. O padrão correspondente precisa ser citado para funcionar como padrão :P
  2. A opção --no-absolute-filenamesdeveprecedero padrão na linha de comando
  3. Como essa opção remove o início /dos nomes de arquivos, o padrão correspondente também deve omitir o início/

Responder4

Esta página da Wikipedia emcpiotem algumas notas boas.
Para mais detalhes, consulte ocpiomanual.

Um link da mesma página da Wikipediadiscute comparação com tararquivos.
E aqui está um exemplo deusando cpiocom o tarformato.

informação relacionada