Extraer archivos específicos en un archivo tar utilizando un comodín

18

Estoy tratando de crear un script para extraer solo imágenes jpeg de un archivo que contiene muchos tipos de archivos.

Para hacerlo, intenté usar:

   tar -xf MyTar.tar *.jpg

pero falló (* .jpg no encontrado) y me sugiere que use "--wildcard". Así que lo intenté

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

Lo hice, pero luego el mismo error y una advertencia diferente me dicen que la opción "--wildcard" es ambigua.

He revisado las páginas de manual para el alquitrán, pero no encontré una pista sobre el problema.

AdrieanKhisbe
fuente
¿Qué tar y qué versión? Pegue los resultados detar --version
smci

Respuestas:

32

Al final, encontré la respuesta después de un buen descanso. La opción es comodín s , plural ...

Entonces el comando

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

Hice exactamente lo que necesitaba.

AdrieanKhisbe
fuente
3

Pon comillas alrededor del comodín de esta "*.jpg"manera para que el shell no intente expandirlo y en su lugar lo pasará directamente al alquitrán. Desea que tar evalúe el comodín, no el shell y las comillas lo hacen.

Nicole Hamilton
fuente
0

Para algunas versiones anteriores de tar, se extrae lo siguiente del archivo "man" :

Los comodines de sustitución de nombre de archivo no se pueden usar para extraer archivos del archivo. Por el contrario, use un comando de la forma:

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
Ray Peck
fuente