é plausível que o curinga * do Ubuntu com o tar esteja de alguma forma não restaurando alguns arquivos?

3

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
    
por H2ONaCl 06.09.2011 / 14:11

2 respostas

2

Seu curinga expande o que já está no disco, não o que está dentro do arquivo morto (tgz).

    
por 06.09.2011 / 16:36
9

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'
    
por 06.09.2011 / 16:35

Tags