Voici une explication détaillée sur la façon dont il est possible d'extraire des fichiers spécifiques d'une archive. Plus précisément, le tar GNU peut être utilisé pour extraire un ou plusieurs fichiers d'une archive tar. Pour extraire des membres d'archive spécifiques, donnez leurs noms de membres exacts comme arguments.
Par exemple:
tar --extract --file={tarball.tar} {file}
Vous pouvez également extraire les fichiers correspondant à un modèle de globalisation spécifique (caractères génériques). Par exemple, pour extraire de cbz.tar tous les fichiers commençant par pic, quel que soit leur préfixe de répertoire, vous pouvez taper:
tar -xf cbz.tar --wildcards --no-anchored 'pic*'
Pour extraire tous les fichiers php, entrez:
tar -xf cbz.tar --wildcards --no-anchored '*.php'
Où,
-x
: demande à tar d'extraire les fichiers.
-f
: spécifie le nom de fichier / nom de l'archive.
-v
: Verbose (affiche la progression lors de l'extraction des fichiers).
-j
: filtre l'archive via bzip2, permet de décompresser les fichiers .bz2.
-z
: filtre les archives via gzip, permet de décompresser les fichiers .gz.
--wildcards
: demande à tar de traiter les arguments de la ligne de commande comme des modèles de globalisation.
--no-anchored
: l'informe que les modèles s'appliquent aux noms de membres après tout / délimiteur.
-t
liste jusqu'à ce que l'archive tar soit complètement téléchargée. À tout moment, la liste affiche uniquement les noms de fichiers qui ont été ou sont en cours de transfert, c'est-à-dire. pas la liste complète ; jusqu'à ce qu'il soit entièrement téléchargé.Je n'ai pas essayé cela moi-même, mais qu'en est-il:
Tar envoie une ligne à STDOUT pour chaque fichier extrait, puis la
head
commande va tuer le tuyau après 50 lignes. À la mort du tuyau, je m'attendrais à ce que le goudron meure aussi.la source
head
. Permettez-moi de changer ma réponse.tar
puisse extraire plus de 50 fichiers avant qu'il ne soit SIGPIPEd, et en particulier il puisse extraire le dernier fichier incomplet.vous donne toute la liste des fichiers
tarfile.tar
Cette commande restaure le
fileToRestore
Pour décompresser plusieurs fichiers, mais pas tous, vous pouvez:
Vous mettez toute la liste des fichiers de
tarfile.tar
danstar.txt
A maintenant
tar.txt
toute la liste des fichierstarfile.tar
et vous ne pouvez laisser que les fichiers que vous souhaitez restaurer ou avec la tête ...Vous pouvez mettre ces lignes dans un fichier
Ou le fichier de script complet:
Et c'est tout
la source