gzip -cd foo.cpio.gz | cpio -idmv
- i: extrair (entrada)
- d: criar diretórios
- m: preservar mtime
- v: detalhado
Recebi uma distribuição de software Unix como um arquivo compactado do cpio. Qual o melhor comando para extrair os arquivos?
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 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:
--no-absolute-filenames
deve preceder o padrão na linha de comando /
dos nomes de arquivos, o padrão de correspondência também deve omitir o primeiro /
Tags cpio