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.