Est-il plausible que le wildcard * d'Ubuntu * avec tar soit en quelque sorte l'échec de la restauration de certains fichiers?

Dans cette séquence de ligne de commande, j'utilise un caractère générique * .sh pour restaurer certains fichiers. J'ai eu trois hits. Sachant qu'il doit y en avoir plus, j'ai tapé tout le nom. Par exemple: goFindRanges.sh. J'ai pu restaurer un fichier supplémentaire. Comment le caractère générique a-t-il dérangé?

Mon archive .tgz est sur un disque dur; Pas de support optique. J'utilise bash sur mon 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 

Votre curseur élargit ce qui est déjà sur le disque, pas ce qu'il y a dans l'archive (tgz).

Quand vous faites:

 tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/*.sh 

Le *.sh est développé par shell (en supposant que n'importe quel ./javawork/Trader1/*.sh existe). Ainsi, le goudron sera exécuté par shell comme suit:

 tar xvpfz backup2011Sep06T0000.tgz ./javawork/Trader1/goReloadOp.sh ./javawork/Trader1/goReloadAudit.sh ./javawork/Trader1/goTrade.sh 

Si vous souhaitez passer le curseur sur le goudron, pour dire "s'il vous plaît, extraire-moi seulement ces fichiers", vous devez le citer un seul et ajouter l'option --wildcards :

 tar xvpfz backup2011Sep06T0000.tgz --wildcards './javawork/Trader1/*.sh'