Extract specific files in a tar archive using a wildcard

I'm trying to create a script to extract only jpeg pictures from an archive containing many kind of files.

To do so, I tried to use:

   tar -xf MyTar.tar *.jpg

but it failed (*.jpg not found) and suggest me to use "--wildcard". So I tried

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

I did that, but then the same error and a different warning saying to me that the option "--wildcard" is ambiguous.

I've been over the man pages for tar, but didn't find a clue about the problem.


Solution 1:

In the end, I found then answer after a good break. The option is wildcards, plural...

So the command

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

did exactly what I needed.

Solution 2:

Put quotes around the wildcard like this "*.jpg" so the shell won't try expanding it and will instead pass it straight through to tar. You want tar to evaluate the wildcard, not the shell and the quotes do that.