Outils pour utilisateurs

Outils du site


tech:tar_avec_cpio

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
tech:tar_avec_cpio [2025/04/02 11:14] Jean-Baptistetech:tar_avec_cpio [2026/07/03 18:00] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Sauvegarde find tar}}
 +
 +# Créer une archive tar depuis un find grâce à cpio
 +
 +### Présentation
 +
 +**cpio** est à la fois le nom d'une __commande__ et d'un __format__ d'archivage.
 +Voir manuel http://www.gnu.org/software/cpio/manual/cpio.html
 +
 +La commande **cpio** prend aussi en charge d'autre format que cpio, comme par exemple le format **ustar**.
 +
 +
 +### Tar avec cpio
 +
 +Utilisez l'option '-depth' à find.
 +
 +~~~bash
 +find . -depth | cpio -ov --format=ustar |pigz > archive.tar.gz
 +
 +# Équivalent ?
 +find . -depth | xargs tar czf archive.tar.gz
 +find . -exec tar rvf archive.tar "{}" \;
 +~~~
 +
 +//'-depth' pas nécessaire si votre find ne retourne pas de répertoire. Comme avec l'option '-type f' par exemple//
 +
 +~~~bash
 +find . -type f |cpio -ov --format=ustar |pigz > archive.tar.gz
 +~~~
 +
 +Si vous avez des noms de fichiers avec des espaces et des caractères bizarres
 +~~~bash
 +find . -depth -print0 |cpio -0 -ov --format=ustar |pigz > archive.tar.gz
 +~~~
 +
 +Il est également possible de créer un tarball depuis un find (ou un **ls**) avec **Pax** qui est à privilégier.
 +Cependant contrairement à pax, cpio est livré par défaut dans la plupart des distributions.
 +
 +Voir [Pax](https://fr.wikipedia.org/wiki/Pax_%28Unix%29)
 +
 +### Limitation 
 +
 +Le format d'archive défini par la norme POSIX.1-1988 appelé [ustar](http://www.gnu.org/software/tar/manual/html_node/ustar.html) est très portable. Mais en revanche, il est assez limité.
 +
 +* Taille max de l'archive : 8GB
 +* Taille max nom de fichier : 256 caractères grand max (souvent moins)
 +* Taille max nom lien symbolique : 100 caractères
 +
 +Voir détails http://www.gnu.org/software/tar/manual/html_section/tar_68.html
 +
 +### Exemple en pratique
 +
 +[[debian_conflit_2paquet_meme_fichier]]
 +
 +## Autre CPIO
 +
 +~~~bash
 +find . -mount -print | cpio -pdm /mnt/newhost-disk
 +~~~
 +
 +## Autre 
 +
 +Avec Tar
 +
 +~~~bash
 +tar -cvf allfiles.tar -T mylist.txt
 +~~~
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki