¿Comando de extracción básica cpio, equivalente a 'tar xzvf'?

¿Comando de extracción básica cpio, equivalente a 'tar xzvf'?

Recibí una distribución de software Unix como un archivo cpio comprimido. ¿Cuál es el mejor comando para extraer los archivos?

Respuesta1

gzip -cd foo.cpio.gz | cpio -idmv
  • i: extraer (entrada)
  • d: crear directorios
  • m: preservar mtime
  • v: detallado

Respuesta2

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

Si bien esta es una pregunta antigua, aparece en los primeros lugares de Google, así que pensé en actualizarla. Estoy de acuerdo con la respuesta aceptada en general, pero debe agregar "--no-absolute-filenames" a menos que tenga la intención de sobrescribir archivos importantes del sistema en su máquina. Además, personalmente, prefiero "zcat" a "gzip -cd" o "gunzip -c".

Finalmente, tenga en cuenta que necesita ejecutar cpio como root (por ejemplo, sudo) si está extrayendo un sistema de archivos raíz que contiene nodos de dispositivo.

Respuesta3

Por ejemplo, para extraer el contenido archivado de /etc/httpd/ al directorio actual, creando subdirectorios ./etc/httpd/

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

La respuesta aceptada y la de Matt fueron útiles para mí, pero me quedé perplejo por un tiempo debido a tres detalles:

  1. El patrón coincidente debe citarse para que funcione como patrón :P
  2. La opción --no-absolute-filenamesdebeprecederel patrón en la línea de comando
  3. Dado que esa opción elimina el interlineado /de los nombres de archivos, el patrón coincidente también debe omitir el interlineado./

Respuesta4

Esta página de Wikipedia encpiotiene algunas buenas notas.
Para obtener más detalles, consulte lacpiomanual.

Un enlace de la misma página de Wikipedia.analiza la comparación con tarlos archivos.
Y aquí hay un ejemplo deusando cpiocon el tarformato.

información relacionada