Estrai file specifici in un archivio tar usando un carattere jolly


18

Sto cercando di creare uno script per estrarre solo immagini jpeg da un archivio contenente molti tipi di file.

Per fare ciò, ho provato ad usare:

   tar -xf MyTar.tar *.jpg

ma non è riuscito (* .jpg non trovato) e suggeriscimi di usare "--wildcard". Quindi ci ho provato

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

L'ho fatto, ma poi lo stesso errore e un avvertimento diverso che mi diceva che l'opzione "--wildcard" è ambigua.

Sono stato sulle pagine man di tar, ma non ho trovato un indizio sul problema.


Quale tar e quale versione? Incolla i risultati ditar --version
smci,

Risposte:


32

Alla fine, ho trovato la risposta dopo una buona pausa. L'opzione è jolly s , plurale ...

Quindi il comando

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

fatto esattamente quello di cui avevo bisogno.


3

Metti le virgolette attorno al carattere jolly in questo "*.jpg"modo in modo che la shell non proverà ad espanderlo e invece lo passerà direttamente in tar. Volete tar per valutare il carattere jolly, non la shell e le virgolette lo fanno.


0

Per alcune versioni precedenti di tar, il seguente file viene estratto dal file "man" :

I caratteri jolly di sostituzione del nome file non possono essere utilizzati per l'estrazione di file dall'archivio. Piuttosto, usa un comando del modulo:

tar xvf ... /dev/rmt/0 `tar tf ... /dev/rmt/0 | grep 'pattern' `
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.