GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il un tar ou un cpio plus intelligent pour récupérer efficacement un fichier stocké dans l'archive ?

Solution 1 :

tar (et cpio et afio et pax et des programmes similaires) sont des formats orientés flux - ils sont destinés à être diffusés directement sur une bande ou acheminés vers un autre processus. alors qu'en théorie, il serait possible d'ajouter un index à la fin du fichier/flux, je ne connais aucune version qui le fasse (ce serait cependant une amélioration utile)

cela ne vous aidera pas avec vos archives tar ou cpio existantes, mais il existe un autre outil, dar ("archive de disque"), qui crée des fichiers d'archive contenant un tel index et peut vous donner un accès direct rapide à des fichiers individuels dans l'archive .

si dar n'est pas inclus avec votre unix/linux-dist, vous pouvez le trouver à :

http://dar.linux.free.fr/

Solution 2 :

Vous pouvez utiliser SquashFS pour de telles archives. C'est

  • conçu pour être accessible à l'aide d'un pilote de fusible (bien qu'une interface traditionnelle existe)
  • compressé (plus la taille du bloc est grande, plus il est efficace)
  • inclus dans le noyau Linux
  • stocke les UID/GID et l'heure de création
  • conscient de l'endianess, donc assez portable

Le seul inconvénient que je connaisse est qu'il est en lecture seule.

http://squashfs.sourceforge.net/http://www.tldp.org/HOWTO/SquashFS-HOWTO/whatis.html

Solution 3 :

Bien qu'il ne stocke pas d'index, star est censé être plus rapide que tar . De plus, il prend en charge les noms de fichiers plus longs et offre une meilleure prise en charge des attributs de fichier.

Comme vous le savez sûrement, la décompression du fichier prend du temps et serait probablement un facteur dans la vitesse d'extraction même s'il y avait un index.

Modifier : Vous pouvez également jeter un œil à xar . Il a un en-tête XML qui contient des informations sur les fichiers de l'archive.

À partir de la page référencée :

L'en-tête XML de Xar lui permet de contenir des métadonnées arbitraires sur les fichiers contenus dans l'archive. En plus des métadonnées de fichier unix standard telles que la taille du fichier et ses heures de modification et de création, xar peut stocker des informations telles que les bits de fichier ext2fs et hfs, les drapeaux unix, les références aux attributs étendus, les informations de Mac OS X Finder, Mac OS Fourchettes de ressources X et hachages des données du fichier.

Solution 4 :

Thorbjørn Ravn Anderser a raison. GNU tar crée des archives "cherchables" par défaut. Mais il n'utilise pas ces informations lorsqu'il lit ces archives si l'option -n n'est pas donnée. Avec l'option -n, je viens d'extraire un fichier de 7 Go d'une archive de 300 Go dans le temps nécessaire pour lire/écrire 7 Go. Sans -n, cela a pris plus d'une heure et n'a produit aucun résultat.

Je ne sais pas comment la compression affecte cela. Mon archive n'a pas été compressée. Les archives compressées ne sont pas "recherchables" car le tar GNU actuel (1.26) décharge la compression sur un programme externe.

Solution 5 :

Le seul format d'archive que je connaisse qui stocke un index est ZIP, car j'ai dû reconstruire des index corrompus plus d'une fois.


Linux
  1. Créer une archive Tar d'un répertoire, à l'exception des fichiers cachés ?

  2. Comment ajouter/mettre à jour un fichier dans une archive Tar.gz existante ?

  3. Erreur tar :EOF inattendu dans l'archive

  4. Extraire tar l'erreur de fichier tar.bz2

  5. Désarchiver le fichier tout en réduisant la taille de l'archive ?

dtrx - L'extracteur d'archives universel pour de nombreux types d'archives

Comment afficher le contenu d'une archive ou d'un fichier compressé sous Linux

Choisissez le meilleur système de fichiers pour votre Linux

Les 8 distributions Linux les plus populaires disponibles

Les 15 meilleurs logiciels de partage de fichiers pour Linux Desktop

Existe-t-il un moyen rapide d'obtenir le tout dernier fichier dans un grand TAR ?