comando de extração básica do cpio, 'tar xzvf' equivalente?

11

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

    
por Mark Harrison 28.08.2009 / 02:52

4 respostas

10
gzip -cd foo.cpio.gz | cpio -idmv
  • i: extrair (entrada)
  • d: criar diretórios
  • m: preservar mtime
  • v: detalhado
por 28.08.2009 / 03:06
3
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames

Embora essa seja uma pergunta antiga, ela aparece no Google, por isso pensei em atualizá-la. Eu concordo com a resposta aceita em geral, mas você deve adicionar "--no-absolute-filenames" a menos que você pretenda sobrescrever importantes arquivos do sistema em sua máquina. Além disso, pessoalmente, eu prefiro "zcat" sobre "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 contenha nós de dispositivo.

    
por 01.07.2015 / 22:13
0

Esta página da Wikipedia em cpio tem algumas boas notas.
Para mais detalhes, consulte o cpio manual .

Um link da mesma página da Wikipédia discute a comparação com tar archives .
E aqui está um exemplo de usando cpio com o formato tar .

    
por 28.08.2009 / 04:04
0

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 perplexa por um tempo por causa de três detalhes:

  1. O padrão de correspondência precisa ser cotado para funcionar como um padrão: P
  2. A opção --no-absolute-filenames deve preceder o padrão na linha de comando
  3. Como essa opção remove o primeiro / dos nomes de arquivos, o padrão de correspondência também deve omitir o primeiro /
por 09.12.2015 / 14:46

Tags