L’estrazione di uno o più file da un grosso archivio tar (tarball) può comportare parecchio tempo, specialmente se viene lanciata su un DAT. Per questo motivo nasce questa breve guida, per non appuntarmi il comando specifico da utilizzare per il recuperare dati dal backup a nastro senza fare delle prove o delle ricerche sulla rete.

Prendiamo ad esempio il file aMule-2.2.6.tar.bz2, il file dell’applicativo aMule compresso con Bzip2.

Qui di seguito unno screenshot dei comandi dati per estrarre alcuni specifici file dall’archivio.

 

 Omettendo il primo comando che trattasi di un normale list di file.

Il secondo invece trattasi del comando per mostrare l’elenco dei file contenuti nell’archivio compresso, messo in pipe con un grep alla ricerca di qualsiasi file contenente la stringa configure. In questo caso entra in gioco l’opzione -t del comando tar che effettua il list di tutto il contenuto dell’archivio. Avremmo potuto ottenere lo stesso risultato anche con il comando sottostante:

[cc]

tar tvjf aMule-2.2.6.tar.bz2 –wildcards *configure*

[/cc]

L’opzione -j permette di lavorare con gli archivi compressi con bzip2 (estensione bz2), se si fosse trattato di un file gzip avremmo dovuto mettere -z al posto di -j.

L’opzione –wildcards attiva la ricerca con wildcards (il carattere jolly asterisco).

Una volta trovato il nostro file all’interno dell’archivhio, possiamo passare all’estrazione mostrata col terzo comando nello screenshot soprastante. Vediamo quindi il terzo comando dell’immagine, in questo caso ho usato il comando:

[cc]tar xvjf aMule-2.2.6.tar.bz2 –wildcards aMule-2.2.6/configure*[/cc]

con il risultato di avere in estrazione i due file matchati con il pattern richiesto cioè, configure.in e configure. In questo caso è stato utilizzato il parametro -x al posto di -t  passando da una sola visualizzazione del contenuto all’estrazione vera e propria.
In alternativa avremmo potuto aggiungere il parametro –no-anchored per cercare il file su qualsiasi livello di profondità, permettendo di escludere il match del path all’interno dell’archivio compresso:

[cc]tar xvjf aMule-2.2.6.tar.bz2 –wildcards –no-anchored configure*[/cc]

Chiaramente se volessimo estrarre solo un file non andremo ad utilizzare i wildcards.

Ricapitolando le opzioni utilizzate sono state:

  • -t: Lista il contenuto di un archivio
  • -x: Estrae i file da un archivio
  • -j: utilizzato per decomprimere i file .bz2
  • -v: processa i file in maniera verbosa
  • -f: per specificare un file archivio
  • –wildcards: utilizza le wildcards (default)
  • –no-anchored: permette il match del pattern specificato su qualsiasi sottotringa (default)