Archives cpio

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
$

Etiquettes: