Mi è capitato di dover condividere un grosso file, quindi per poter fare l'upload su un web storage, ho dovuto dividerlo in più parti. Per fare questo si può usare tar per comprimere e dividere contemporaneamente il grosso file, e poi usare cat per la ricostruzione. Un esempio può essere il seguente:

 

$ tar zcf - grosso_file.avi.iso | split -b 200m - archivio.tgz

$ cat archivio.tgza* > unito.tgz

 

 

enjoy ;)

Post simili (quasi):

Tag:,
7 Risposte a “Comprimere e dividere contemporaneamente un grosso file con Tar, andata e ritorno”
  1. precisino scrive:
    Firefox 11.0 Windows XP
    Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0

    “$ tar zcf – grosso_file.avi.iso | split -b 200m – archivio.tgz”

    Non stai comprimendo e dividendo CONTEMPORANEAMENTE, ma PRIMA comprimi (tar) e POI dividi (split)

    Ci vorrebbe una cosa come (mi pare) il vecchio arj o zip che che con un parametro apposito (qualcosa come –volume) comprimava su volumi, tipicamnte floppy chiedendoti di metterli uno alla volta.

    Like or Dislike: Thumb up 0 Thumb down 2

  2. edmond scrive:
    Debian IceWeasel 10.0.3 Debian GNU/Linux 64 bits
    Mozilla/5.0 (X11; Debian Gnu/Linux x86_64; rv:10.0.3) Iceweasel/10.0.3

    Ah ok, la solita questione di lana caprina,
    non contemporaneamente ma prima uno e poi l’altro….. va bè :)

    Like or Dislike: Thumb up 0 Thumb down 0

  3. Paolo scrive:
    Firefox 11.0 Ubuntu
    Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

    Precisino…. credo ti sia sfuggita l’opzione “z” di tar che vuol dire: “comprimi l’archivio con gzip”.
    Il comando “tar zcf – grosso_file.avi.iso | split -b 200m – archivio.tgz” è equivalente a “tar cf – grosso_file.avi.iso | gzip –to-stdout – | split -b 200m – archivio.tgz”
    Per cui tar prende tutti i file, li mette insieme, e filtra il risultato con gzip – ovvero gliedo dà in pasto sullo stdin poi prende l’output di gzip e lo butta sul suo output; split lo prende e lo separa. split separa un file gzip che contiene un unico file: l’archivio tar. Inoltre la shell crea subito tutte e due i processi – tar e split – che lavorano in parallelo. Fintanto che tar riesce a dargli dati split lavora. Che poi split non faccia la gestione dell’espulsione del dispositivo fisico quello è vero.
    In realtà tar ha già tutto quello che serve, sotto forma delle opzioni –new-volume-script –multi-volume .
    Vedi al riguardo http://www.gnu.org/software/tar/manual/html_chapter/Media.html#SEC151
    È molto, molto più flessibile di arj o zip.

    Like or Dislike: Thumb up 1 Thumb down 0

  4. Paolo scrive:
    Firefox 11.0 Ubuntu
    Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

    edmond, mi pare che precisino non conosca bene il funzionamento delle pipe e delle shell unix.
    In realtà i tre processi lavorano in parallelo e contemporaneamente… tar accorpa i file, gzip ne comprime il flusso e split lavora sul flusso di tar.
    Se poi usi la gestione multi volume di tar non hai bisogno di split….
    E non vengono creati file temporanei sul disco…

    Like or Dislike: Thumb up 1 Thumb down 0

  5. edmond scrive:
    Debian IceWeasel 10.0.3 Debian GNU/Linux 64 bits
    Mozilla/5.0 (X11; Debian Gnu/Linux x86_64; rv:10.0.3) Iceweasel/10.0.3

    @Paolo
    mi sembra che tu abbia detto tutto quello che c’era da dire ;)
    per quanto riguarda la gestione multi volume, me la devo rivedere
    dato che non l’ho mai usata.

    Like or Dislike: Thumb up 0 Thumb down 0

  6. telperion scrive:
    Firefox 12.0 GNU/Linux 64 bits
    Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0

    se il file è un
    “grosso_file.avi.iso”
    man split
    e risparmi tempo,
    visto che avi, mkv, jpeg eccetera NON si comprimono affatto ulteriormente.

    Like or Dislike: Thumb up 0 Thumb down 0

  7. edmond scrive:
    Safari 7534.48.3 Mac OS
    Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

    @telperion
    Infatti, per quei formati non si guadagna in compressione

    Like or Dislike: Thumb up 0 Thumb down 0

  8.  
Scrivi un Commento

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