2016-11-04 4 views
0

J'ai une énorme archive tar que je tire de grandes sections pour les traiter une à la fois. Je ne veux pas avoir à le garder pour l'empêcher de remplir le disque et d'écraser d'autres applications.Je veux que l'extraction de tar s'arrête après une certaine plage de fichiers

Je sais que je peux démarrer à partir d'un fichier arbitraire dans l'archive en utilisant --starting-file= mais il ne semble pas y avoir de commande --stopping-file=.

Il semble que je puisse écrire un motif d'exclusion inversé pour qu'il ignore tous les fichiers après cela, mais il semble qu'il essaiera toujours de parcourir tous les index (des dossiers de niveau supérieur au moins) en les vérifiant, consommer des ressources et empêcher une résiliation anticipée.

Y a-t-il un meilleur moyen de l'empêcher de continuer après la section que je veux?

+1

Pourriez-vous faire une liste de fichiers du fichier de démarrage au fichier d'arrêt et l'utiliser comme liste d'arguments pour l'option d'extraction? – Jens

Répondre

0

Vous pouvez écrire la liste des fichiers complète avec tar -t -f my.tar > my.list

filtres comme Chaînage grep ou la modification du fichier peut limiter la liste. Donc, pour extraire tous les fichiers et dossiers sous le chemin de mon/dossier/path ', exécutez tar -t -f my.tar | grep "my/folder/path" > my.list

extrait ensuite les fichiers répertoriés avec tar x -T my.list -f my.tar

Merci à Jens pour la suggestion de la stratégie.