web-dev-qa-db-fra.com

Supprimer les fichiers des archives de goudron

J'ai un gros fichier foo.tar.xz qui contient beaucoup (disons 200000) des fichiers. J'ai compris que cette archive contient des fichiers (environ 5000) que je ne veux pas. Je n'ai pas suffisamment d'espace disque pour décompresser le tout sur mon disque; De plus, je crains que les attributs/droits puissent se perdre si je le fais. J'ai assez d'espace pour accueillir deux copies de l'archive compressée cependant. Existe-t-il un outil pour supprimer certains des fichiers de l'archive (spécifié avec une regex sur le nom de fichier) sur la mouche, c'est-à-dire sans déballier les archives dans des fichiers individuels?

18
FUZxxl

GNU Tar a un --delete Option qui fonctionne aussi avec des archives de nos jours.

Utilisez-le comme ceci, par exemple:

tar -vf yourArchive.tar --delete your/path/to/delete

Méfiez-vous: il sera probablement pas Travailler sur n'importe quel type de support magnétique. Mais tar n'a aucun problème à fonctionner dans un tuyau, vous pouvez simplement utiliser un fichier tar temporaire et écraser la bande avec celle-ci ensuite. Cela ne fonctionnera pas non plus sur les fichiers compressés. Vous devez donc décompresser le fichier.

En outre, l'opération sera plutôt lente dans tous les cas, en raison de la nature linéaire (par conception) des archives de goudron.

17
Evi1M4chine

(édité, comme j'ai mal compris la question, qui était aussi édité aussi)

Le mieux que vous puissiez faire est d'extraire, de supprimer et de recompréger tout le fichier.

unxz < foobar-old.tar.xz | tar --delete foo/bar | xz > foobar-new.tar.xz

Il n'est pas possible de supprimer directement des fichiers d'un goudron.

goudron est un flux, destiné à l'origine pour les lecteurs de bande qui ne font pas de bien aléatoire, bien que dans la théorie, il pourrait être possible d'être possible sur un système de fichiers de disque pour percer un trou/réécrire le fichier restant, avec la compression, le point est sans objet comme tout Les méthodes de compression dépendent fortement des contenus qui se sont produits plus tôt dans le fichier. Pour ce faire en place, vous avez besoin de connaissances très détaillées sur la méthode de compression ainsi que le format de fichier TAR. C'est la complexité à un point que personne ne se soucierait même de ça. Il est moins cher de simplement conserver les fichiers et les ignorer.

Si vous avez besoin de cette fonctionnalité, le goudron n'est probablement pas ce que vous voulez.

14
frostschutz