web-dev-qa-db-fra.com

Y a-t-il un goudron ou un CPIO plus intelligent pour récupérer efficacement un fichier stocké dans l'archive?

J'utilise tar pour archiver un groupe de très gros (multi-gb) bz2 des dossiers.

Si j'utilise tar -tf file.tar Pour répertorier les fichiers dans les archives, cela prend beaucoup de temps à compléter (environ 10-15 minutes).

Également, cpio -t < file.cpio prend aussi longtemps que de compléter, plus ou moins quelques secondes.

En conséquence, récupérer un fichier d'une archive (via tar -xf file.tar myFileOfInterest.bz2 par exemple) est aussi lent.

Existe-t-il une méthode d'archivage qui conserve un "catalogue" facilement disponible avec les archives, de sorte qu'un fichier individuel dans l'archive puisse être récupéré rapidement?

Par exemple, une sorte de catalogue qui stocke un pointeur à un octet particulier dans les archives, ainsi que la taille du fichier à extraire (ainsi que tout autre des particularités spécifiques au système de fichiers).

Y a-t-il un outil (ou argument à tar ou cpio) qui permet une récupération efficace d'un fichier dans l'archive?

24
Alex Reynolds

tar (et CPIO et AFIO et PAX et PAX et programmes similaires) sont des formats axés sur les flux - ils sont destinés à être diffusés directement sur une bande ou à un autre processus. Bien que, en théorie, il serait possible d'ajouter un index à la fin du fichier/du flux, je ne connais aucune version qui ne le fait (ce serait une amélioration utile toutefois)

cela ne vous aidera pas avec vos archives de goudron ou de CPIO existantes, mais il existe un autre outil, DAR ("Archives 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 les archives. .

si DAR n'est pas inclus avec votre Unix/Linux-dist, vous pouvez le trouver à:

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

15
cas

Cela n'indique pas que je connais, mais j'utilise des fichiers de vidage et de la restauration, et de naviguer dans l'arborescence de restauration en mode interactif pour sélectionner des fichiers aléatoires est très rapide.

2
MediaManNJ

Je crois GNU Tar est capable de faire ce que vous voulez, mais je ne peux pas localiser une ressource définitive en disant ainsi.

En tout cas, vous avez besoin d'un format d'archivage avec un index (car cela vous permettra de faire ce que vous voulez). Je ne crois pas que les fichiers zip peuvent grandir ce gros, malheureusement.

1