La commande cpio permet également de faire des archives. Contrairement à la commande tar, elle n'est pas récursive. Tous les noms de fichiers entrant dans la composition de l'archive doivent être lus sur l'entrée standard. L'archive est envoyée sur la sortie standard. La commande est presque toujours utilisée derrière un tube lui-même précédé de la commande find qui permet de générer les noms de fichiers souhaités.
En vérification et restauration, l'archive à traiter est attendue sur l'entrée standard.
Syntaxe
Création d'une archive :
find . | cpio -o [-cv] > archive
Vérification d'une archive :
cpio -it [-cv] < archive [fichiers_a_verifier ...]
Extraction d'une archive :
cpio -i [-cdv] < archive [fichiers_a_extraire ...]
Principales options :
-c : Création/vérification/extraction d'une archive ayant un format d'en-tête d'archive portable entre les systèmes UNIX
-d : Extraction avec création des répertoires s'ils n'existent pas
-i : Extraction d'une archive
-it : Vérification d'une archive
-o : Création d'une archive
-v : Mode verbeux
Exemples
Archivage du dossier dossier_a_sauvegarder
$ find dossier_a_sauvegarder
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
$ find dossier_a_sauvegarder | cpio -ocv > monArchive.cpio
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
6674 blocs
$
Vérification de l'archive
$ cpio -icvt < monArchive.cpio
drwxr-xr-x 2 root root 0 Apr 17 13:15 dossier_a_sauvegarder
-rw-r--r-- 1 root root 281 Apr 17 08:46 dossier_a_sauvegarder/ronan2
-rw-r--r-- 1 root root 3171822 Apr 17 08:46 dossier_a_sauvegarder/last
-rw-r--r-- 1 root root 195732 Apr 17 08:46 dossier_a_sauvegarder/search
-rw-r--r-- 1 root root 622 Apr 17 08:46 dossier_a_sauvegarder/piwik2
-rw-r--r-- 1 root root 281 Apr 17 08:46 dossier_a_sauvegarder/ronan3
-rw-r--r-- 1 root root 116 Apr 17 08:46 dossier_a_sauvegarder/result
-rw-r--r-- 1 root root 3083 Apr 17 08:46 dossier_a_sauvegarder/help
-rw-r--r-- 1 root root 26000 Apr 17 08:46 dossier_a_sauvegarder/history
-rw-r--r-- 1 root root 7 Apr 17 08:46 dossier_a_sauvegarder/Coucou
-rw-r--r-- 1 root root 15667 Apr 17 08:46 dossier_a_sauvegarder/pays2011.txt.1
-rw-r--r-- 1 root root 10 Apr 17 08:46 dossier_a_sauvegarder/monscript
-rw------- 1 root root 281 Apr 17 08:46 dossier_a_sauvegarder/ronan
-rw-r--r-- 1 root root 387 Apr 17 08:46 dossier_a_sauvegarder/test
-rw-r--r-- 1 root root 0 Apr 17 08:46 dossier_a_sauvegarder/Bonjour
-rw-r--r-- 1 root root 622 Apr 17 08:46 dossier_a_sauvegarder/piwik1
-rw-r--r-- 1 root root 36 May 25 18:11 dossier_a_sauvegarder/aZerty
6674 blocs
$
Création d'une archive cpio compressée avec bzip2
$ find dossier_a_sauvegarder | cpio -ocv | bzip2 -c > monArchive.cpio.bz2
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
6674 blocs
$
Décompression et extraction de l'archive
$ mkdir tmp
$ cp monArchive.cpio.bz2 tmp
$ cd tmp
$ ll
total 276
drwxr-xr-x 2 root root 4096 26 mai 08:59 .
drwx------ 12 root root 4096 26 mai 08:58 ..
-rw-r--r-- 1 root root 266276 26 mai 08:59 monArchive.cpio.bz2
$ bzip2 -dc monArchive.cpio.bz2 | cpio -icvd
dossier_a_sauvegarder
dossier_a_sauvegarder/ronan2
dossier_a_sauvegarder/last
dossier_a_sauvegarder/search
dossier_a_sauvegarder/piwik2
dossier_a_sauvegarder/ronan3
dossier_a_sauvegarder/result
dossier_a_sauvegarder/help
dossier_a_sauvegarder/history
dossier_a_sauvegarder/Coucou
dossier_a_sauvegarder/pays2011.txt.1
dossier_a_sauvegarder/monscript
dossier_a_sauvegarder/ronan
dossier_a_sauvegarder/test
dossier_a_sauvegarder/Bonjour
dossier_a_sauvegarder/piwik1
dossier_a_sauvegarder/aZerty
6674 blocs
$ ll
total 280
drwxr-xr-x 3 root root 4096 26 mai 08:59 .
drwx------ 12 root root 4096 26 mai 08:58 ..
drwxr-xr-x 2 root root 4096 26 mai 08:59 dossier_a_sauvegarder
-rw-r--r-- 1 root root 266276 26 mai 08:59 monArchive.cpio.bz2
$ ll dossier_a_sauvegarder/
total 3396
drwxr-xr-x 2 root root 4096 26 mai 08:59 .
drwxr-xr-x 3 root root 4096 26 mai 08:59 ..
-rw-r--r-- 1 root root 36 26 mai 08:59 aZerty
-rw-r--r-- 1 root root 0 26 mai 08:59 Bonjour
-rw-r--r-- 1 root root 7 26 mai 08:59 Coucou
-rw-r--r-- 1 root root 3083 26 mai 08:59 help
-rw-r--r-- 1 root root 26000 26 mai 08:59 history
-rw-r--r-- 1 root root 3171822 26 mai 08:59 last
-rw-r--r-- 1 root root 10 26 mai 08:59 monscript
-rw-r--r-- 1 root root 15667 26 mai 08:59 pays2011.txt.1
-rw-r--r-- 1 root root 622 26 mai 08:59 piwik1
-rw-r--r-- 1 root root 622 26 mai 08:59 piwik2
-rw-r--r-- 1 root root 116 26 mai 08:59 result
-rw------- 1 root root 281 26 mai 08:59 ronan
-rw-r--r-- 1 root root 281 26 mai 08:59 ronan2
-rw-r--r-- 1 root root 281 26 mai 08:59 ronan3
-rw-r--r-- 1 root root 195732 26 mai 08:59 search
-rw-r--r-- 1 root root 387 26 mai 08:59 test
$