Guida ai comandi da terminale: differenze tra le versioni

Riga 579: Riga 579:
<code>
<code>
$ tar cvjf current.tar.bz2 *
$ tar cvjf current.tar.bz2 *
</code>
</code><br/>
Nota: La differenza tra i due comandi precedenti è abbastanza semplice. Nel primo caso ad essere compressa è la reale direcotry corrente. Scompattando l'archivio ci troveremo con una directory che contiene tutti i file. Nel secondo caso invece ad essere compressa non è la directory bensì tutti i file che essa contiene. Scompattando non troveremo una cartella contenente ma tutti i file contenuti nell'archivio saranno copiati nella directory di scompattazione senza che sia creata la subdirectory.
''Nota: La differenza tra i due comandi precedenti è abbastanza semplice. Nel primo caso ad essere compressa è la reale direcotry corrente. Scompattando l'archivio ci troveremo con una directory che contiene tutti i file. Nel secondo caso invece ad essere compressa non è la directory bensì tutti i file che essa contiene. Scompattando non troveremo una cartella contenente ma tutti i file contenuti nell'archivio saranno copiati nella directory di scompattazione senza che sia creata la subdirectory.''


* Copiare una directory:
* Copiare una directory:
Riga 600: Riga 600:
<code>
<code>
$ find ~ -type f -name "*.jpg" | xargs tar rvzf photo.tar.gz
$ find ~ -type f -name "*.jpg" | xargs tar rvzf photo.tar.gz
</code>
</code><br/>
nel quale abbiamo usato l'opzione append (-r) invece della create (-c). Questo perchè nel caso di archivi molto grandi xargs passa tutti gli argomenti a blocchi e tar ricrea ogni volta l'archivio con solamente i file elencati in quel blocco all'interno. La modalità append risolve il problema.
''nel quale abbiamo usato l'opzione append (-r) invece della create (-c). Questo perchè nel caso di archivi molto grandi xargs passa tutti gli argomenti a blocchi e tar ricrea ogni volta l'archivio con solamente i file elencati in quel blocco all'interno. La modalità append risolve il problema.''


* Estrarre singoli file da un archivio:
* Estrarre singoli file da un archivio:
Riga 616: Riga 616:
<code>
<code>
$ tar xvjf archive.tar.bz2 subdir1/
$ tar xvjf archive.tar.bz2 subdir1/
</code>
</code><br/>
Nota: Per poter estrarre singoli file o subdirectory occorre conoscerne con esattezza i nomi. Tuttavia è possibile utilizzare altri comandi come find, grep, awk per ottenere un elenco dei file che vogliamo estrarre.
''Nota: Per poter estrarre singoli file o subdirectory occorre conoscerne con esattezza i nomi. Tuttavia è possibile utilizzare altri comandi come find, grep, awk per ottenere un elenco dei file che vogliamo estrarre.''


* Estrarre da un archivio solo i file elencati in un file di testo:
* Estrarre da un archivio solo i file elencati in un file di testo:
Riga 638: Riga 638:
$ tar czf - directory/ | wc -c
$ tar czf - directory/ | wc -c
</code>
</code>
<br/><br/>
''(Grazie a [http://nerotux.tuxfamily.org Nerotux] per gli esempi sull'utilizzo di tar)''
''(Grazie a [http://nerotux.tuxfamily.org Nerotux] per gli esempi sull'utilizzo di tar)''