Oct 102011
 

A volte capita di avere la necessità di verificare cosa c’è dentro un file di archivio .tar.gz o forse solo bisogno di estrarre un paio di file da un altro archivio, questo è possibile, basta ricordare tutte le opzioni o semplicemente estrarre tutto in /tmp e poi eliminare il file che non servono

Ma c’è anche un modo più furbo per farlo, utilizzare archivemount




Cosa è archivemount? Citando Wikipedia:

archivemount è basato su file system FUSE per le differenti versioni di Unix, compreso Linux. Il suo scopo è quello di montare archivi (cioè tar, tar.gz, ecc) su un punto di mount in cui può essere letto o scritto come con qualsiasi altro file system. Questo rende l’accesso al contenuto dell’archivio, che può essere compresso, trasparente per altri programmi, senza decomprimerlo.

Questo è esattamente quello che stavamo cercando per lavorare sui nostri archivi in maniera totalmente trasparente.

Installazione

archivemount it’s available in most distribution, so install it using your distirbution package manager, on my Ubuntu 11.04 i’ve run from the terminal:

sudo aptitude install archivemount

Aggiungere anche gli utenti che desiderano utilizzarlo al gruppo fuse (e fargli fare logout e login di nuovo se necessario), per farlo utilizzare il comando useradd da terminale:

Sintassi:
useradd -G {group-name} username

Esempio

sudo useradd -G fuse linuxaria

sintassi di archivemount

archivemount [-hVdfs] [-o options] archivepath mountpoint

Ci sono molte opzioni per archivemount e in generale per tutti i filesystem di tipo fuse, ma per iniziare, potete ignorarli, per cui la sintassi di base è solo:archivemount archivepath mountpoint

Quindi basta il percorso completo del vostro archivio e una directory libera dove montare il contenuto di tale archivio.

EXAMPLE SESSION

Considerare l’archivio compresso con tar e gzip “files.tgz” che contiene i file “file1” e “file2”, ed una directory vuota di nome “mnt”.

$ ls
files.tgz    mnt/

$ archivemount files.tgz mnt

$ ls mnt
file1    file2

[...Eseguire le letture/scritture desiderate sull'archivio via /mnt ...]

$ umount mnt

[... Tutte le modifiche vengono salvate nell'archivio ...]

Poichè fuse espone i suoi filesystem attraverso il kernel Linux, è possibile utilizzare qualsiasi applicazione per caricare e salvare file direttamente in tali archivi montati. Ciò consente di utilizzare il vostro editor di testo preferito, visualizzatore di immagini, o un lettore musicale per file che sono ancora all’interno di un file di archivio. Andando un passo in avanti, poichè archivemount supporta anche l’accesso in scrittura per alcuni formati di archivio, è anche possibile modificare un file di testo direttamente da dentro un archivio.

Formati degli Archivi

Il supporto per i formati archivio è fornito dalla libreria libarchive. Operazioni di lettura sono supportate:

  •  Archivi tar nel vecchio formato,
  • La maggior parte delle varianti del formato POSIX  “ustar” ,
  • Il formato POSIX “pax interchange” ,
  • Archivi tar nel formato GNU,
  • La maggior parte dei formati degli archivi cpio,
  • Immagini CD SO9660  (con o senza le estensioni RockRidge),
  • Archivi Zip.

Archivi compressi con gzip, bzip2, o compress sono rilevati automaticamente e in modo trasparente decompressi.

I seguenti formati possono essere scritti:

  • Archivi POSIX-standard “ustar”,
  • Archivi POSIX  “pax interchange format”,
  • Archivi POSIX  cpio,
  • Due varienti degli archivi shar.

Prima di scrivere, l’archivio originale viene rinominato con una estensione .orig. Maggiori dettagli circa la lettura/scrittura si possono trovare nella documentazione di  libarchive.

Popular Posts:

flattr this!

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>