4.3.2.- La utilidad cpio

cpio_tituloEsta utilidad es similar a tar, pero difieren en su funcionamiento, Al igual que tar, puede dirigir su salida directamente a un dispositivo de cinta o a un fichero normal. Para recuperar los datos, podemos utilizar cpio para que lea directamente del dispositivo de cinta o de un fichero normal. Su sintaxis es:

cpio_sintaxis

Esta utilidad tiene tres modos de funcionamiento:

  1. Modo copy-out.- Este modo se activa mediante el uso de las opciones -o o --create, crea un archivo y copia ficheros en éste.
  2. Modo copy-in.- Podemos activarlo usando las opciones -i o --extract. Este modo extrae información de un archivo existente. Si le ponemos un nombre de fichero o un patrón para comparar, cpio extraerá sólo los ficheros cuyos nombres coincidan con el patrón proporcionado.
  3. Modo copy-pass.- Este modo se activa mediante la opción -p o --pass-through. Combina los dos modos anteriores, permitiéndole copiar un árbol de directorios de una ubicación a otra.

Los modos 1 y 2 pueden que nos resulten algo confusos.

Además de las opciones utilizadas para seleccionar el modo, cpio acepta muchas otras opciones. La siguiente tabla muestra un resumen de las más importantes. Para crear un archivo, puede combinar las opciones --create (o -c) con una o varias de las opciones de la tabla de abajo, para restaurar los datos, haremos lo mismo pero empleando --extract (o -i). En ambos casos, cpio actúa sobre los nombres de fichero que escribe en la consola. En la práctica seguramente utilice el operador de redirección (<) para pasar una lista de nombres de ficheros al programa.

Opciones para cpio
Opción Abreviatura Descripción
--reset-access-time -a Reinicializa el tiempo de acceso tras leer un fichero para que no parezca haber sido leído.
--append -A Añade datos a un archivo existente.
--patern-file=fichero -E fichero Utiliza el contenido de un fichero como lista de ficheros a extraer en modo copy-in.
--file=fichero -F fichero Utiliza el fichero como fichero de archivo de cpio; si se omite este parámetro, cpio utiliza la entrada o salida estándar.
--format=formato -H fichero Utiliza el formato especificado para el fichero de archivo. Los valores habituales para formato incluyen bin (el valor por defecto, un antiguo formato binario), crc (un formato binario más reciente cun una suma de control) y tar (el formato utilizado por tar).
N/D -I fichero Utiliza el fichero especificado en lugar de la entrada estándar (a diferencia de -F, esta opción no redirecciona la salida de datos).
--no-absolute-filenames N/D En modo copy-in, extrae los ficheros relacionados con el directorio actual, aunque los nombres de fichero del archivo contengan rutas completas.
N/D -O fichero Utiliza el fichero especificado en lugar de la salida estándar (a diferencia de -F, esta opción no redirecciona la salida de datos).
--list -t Muestra una tabla de contenidos para la entrada.
--unconditional -u Reemplaza todos los ficheros sin solicitar confirmación previa.
--verbose -v Muestra los nombres de fichero conforme se van añadiendo o extrayendo del archivo. Cuando se utiliza con -t, muestra la información adicional del listado (de manera similar a ls -l).

Para archivar un directorio utilizando cpio, debemos pasarle una lista de ficheros a la utilidad que emplea la entrada estándar. Podemos utilizarlo en combinación con la utilidad find (más adelante lo veremos con detalle).

cpio_ejemplo

Ejemplo de uso de ls con cpio mediante una pipe-line (tubería) que copia en MisPdf el resultado de la salida del comando ls *.pdf.

cpio_gzip

Otro ejemplo para que el archivo resultante esté comprimido gracias a otra tubería con gzip.

 Si tenemos un archivo cpio está comprimid, primero debemos descomprimirlo con la utilidad gunzip. Con la opción -c le pasa la salida a cpio mediante una tubería:

gzip_ejemplo

Con la opción -l de gunzip vemos el contenido de los archivos comprimidos.

Anuncios