Eu recebi uma distribuição de software Unix como um arquivo cpio compactado. Qual é o melhor comando para extrair os arquivos?
Eu recebi uma distribuição de software Unix como um arquivo cpio compactado. Qual é o melhor comando para extrair os arquivos?
Respostas:
gzip -cd foo.cpio.gz | cpio -idmv
mkdir archive
cd archive
zcat ../archive.cpio.gz | cpio -idmv --no-absolute-filenames
Embora essa 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 sobrescrever arquivos importantes do sistema em sua máquina. Além disso, pessoalmente, prefiro "zcat" a "gzip -cd" ou "gunzip -c".
Por fim, 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 do dispositivo.
Esta página da Wikipedia cpio
tem algumas boas notas.
Para mais detalhes, consulte o cpio
manual .
Um link da mesma página da Wikipedia discute a comparação com tar
arquivos .
E, aqui está um exemplo de uso cpio
com o tar
formato .
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:
--no-absolute-filenames
deve preceder o padrão na linha de comandos/
dos nomes de arquivos, o padrão correspondente também deve omitir a principal/
man cpio
o que viu?