Seu curinga expande o que já está no disco, não o que está dentro do arquivo morto (tgz).
Nesta seqüência de linha de comando, eu uso um caractere curinga * .sh para restaurar alguns arquivos. Eu tenho três hits. Sabendo que deve haver mais, digitei o nome inteiro. Por exemplo: goFindRanges.sh. Consegui restaurar um arquivo adicional. Como o curinga pode ter errado?
Meu arquivo .tgz está em um disco rígido; meio não óptico. Eu uso o bash no meu Ubuntu 10.10.
b@maui:~$ tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/*.sh
./javawork/Trader1/goReloadOp.sh
./javawork/Trader1/goReloadAudit.sh
./javawork/Trader1/goTrade.sh
b@maui:~$ tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/goFindRanges.sh
./javawork/Trader1/goFindRanges.sh
quando você faz:
tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/*.sh
o *.sh
é expandido pelo shell (supondo que exista qualquer ./javawork/Trader1/*.sh).
Então, o tar será executado pelo shell como:
tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/goReloadOp.sh ./javawork/Trader1/goReloadAudit.sh ./javawork/Trader1/goTrade.sh
Se você quiser passar o caractere curinga ao tar, para dizer "por favor, extraia somente esses arquivos", é necessário citar o caractere simples e adicionar --wildcards
option:
tar xvpfz backup2011Sep06T0000.tgz --wildcards './javawork/Trader1/*.sh'