Outils pour utilisateurs

Outils du site


tech:tar_avec_cpio

Ceci est une ancienne révision du document !


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.

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

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

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

Limitation

Le format d'archive défini par la norme POSIX.1-1988 appelé ustar 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

Autre CPIO

find . -mount -print | cpio -pdm /mnt/newhost-disk

Autre

Avec Tar

tar -cvf allfiles.tar -T mylist.txt
tech/tar_avec_cpio.1742825205.txt.gz · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki