Inicio wiki
Aula Virtual
 Administración de Sistemas Operativos
Inicio ASO Aula Virtual

Vistas
  •   2.3. La orden cpio
De ASO

cpio ( Copy In/Out) es una utilidad que nos permite copiar ficheros a/o un contenedor cpio; que no es más que un fichero que almacena otros ficheros e información sobre ellos (permisos, nombres, propietario...). Este contenedor puede ser un disco, un fichero, una cinta o incluso una tubería, mientras que los ficheros a copiar pueden ser ficheros normales, pero también dispositivos o sistemas de ficheros completos.

En la tabla 1 se muestran las opciones de cpio más utilizadas. La sintaxis de esta orden es bastante más confusa que la de tar debido a la interpretación de lo que cpio entiende por “dentro†y “fueraâ€. Cuando copiamos “fuera'†generamos un contenedor en salida estándar (que con toda probabilidad desearemos redireccionar). Mientras que copiar “dentro†es lo contrario, es decir, extraer ficheros de la entrada estándar (también es seguro que debemos redireccionarla).


Tabla 1. Opciones de la orden cpio
OpciónAcción Realizada
oCopiar 'fuera' (out)
iCopiar 'dentro' (in)
mConserva fecha y hora de los ficheros
tCrea tabla de contenidos
AAñade ficheros a un contenedor existente
vModo verbose


Por ejemplo, si deseamos copiar los ficheros de /export/home/ en el fichero contenedor /tmp/backup.cpio podemos utilizar la siguiente sintaxis:

# find /export/home/ |cpio -o > /tmp/backup.cpio

Como podemos ver, cpio lee la entrada estándar esperando los nombres de ficheros a guardar, por lo que es conveniente utilizarlo tras una tubería pasándole esos nombres de fichero. Además, hemos de redirigir su salida al nombre que queramos asignarle al contenedor, ya que de lo contrario se mostraría el resultado en salida estándar (lo que evidentemente no es muy utilizado para realizar backups). Podemos fijarnos también en que estamos usando la orden find en lugar de un simple ls. Ésto es debido a que ls mostraría sólo el nombre de cada fichero (por ejemplo, passwd) en lugar de su ruta completa (/etc/passwd), por lo que cpio buscaría dichos ficheros a partir del directorio actual.

Una vez creado el fichero contenedor quizás resulte interesante chequear su contenido, con la opción “tâ€. Por ejemplo, la siguiente orden mostrará en pantalla el contenido de /tmp/backup.cpio:

# cpio -t < /tmp/backup.cpio

Igual que para almacenar ficheros en un contenedor hemos de pasarle a cpio la ruta de los mismos, para extraerlos hemos de hacer lo mismo. Si no indicamos lo contrario, cpio -i extraerá todos los ficheros de un contenedor, pero si sólo nos interesan algunos de ellos podemos especificar su nombre de la siguiente forma:

# echo "/export/home/toni/hola.tex" |cpio -i </tmp/backup.cpio

Para conocer más profundamente el funcionamiento de cpio, así como opciones propias de cada distribución, es indispensable consultar la ayuda en línea man.



Libro Recomendado

HACKERS. APRENDE A ATACAR Y A DEFENDERTE
Ver fichaVer ficha
Comprar libroComprar