Extraire des fichiers spécifiques dans une archive tar à l'aide d'un caractère générique


18

J'essaie de créer un script pour extraire uniquement des images jpeg d'une archive contenant de nombreux types de fichiers.

Pour ce faire, j'ai essayé d'utiliser:

   tar -xf MyTar.tar *.jpg

mais il a échoué (* .jpg introuvable) et me suggère d'utiliser "--wildcard". J'ai donc essayé

tar -xf MyTar.tar --wildcard *.jpg

Je l'ai fait, mais ensuite la même erreur et un avertissement différent me disant que l'option "--wildcard" est ambiguë.

J'ai parcouru les pages de manuel de tar, mais je n'ai trouvé aucun indice sur le problème.


Quel tar et quelle version? Collez les résultats detar --version
smci

Réponses:


32

Au final, j'ai trouvé puis répondu après une bonne pause. L'option est wildcard s , pluriel ...

Ainsi, la commande

tar -xf MyTar.tar --wildcards "*.jpg"

a fait exactement ce dont j'avais besoin.


3

Mettez des guillemets autour du caractère générique comme ceci "*.jpg"pour que le shell n'essaye pas de le développer et le transmette directement à tar. Vous voulez que tar évalue le caractère générique, pas le shell et les guillemets le font.


0

Pour certaines anciennes versions de tar, ce qui suit est extrait du fichier "man" :

Les caractères génériques de substitution de nom de fichier ne peuvent pas être utilisés pour extraire des fichiers de l'archive. Utilisez plutôt une commande du formulaire:

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.