4 069
contributi
(→Esempi) |
|||
Riga 561: | Riga 561: | ||
==== Esempi ==== | ==== Esempi ==== | ||
* Comprimere tutte le immagini jpg dentro una directory: | |||
<code> | <code> | ||
$ tar cvzf photo.tar.gz photo/*.jpg | $ tar cvzf photo.tar.gz photo/*.jpg | ||
</code> | </code> | ||
* Come sopra ma il file viene inserito nella directory dove le foto risiedono: | |||
<code> | <code> | ||
$ tar cvzf photo/photo.tar.gz photo/*.jpg | $ tar cvzf photo/photo.tar.gz photo/*.jpg | ||
</code> | </code> | ||
* Comprimere la directory corrente (1): | |||
<code> | <code> | ||
$ tar cvjf current.tar.bz2 . | $ tar cvjf current.tar.bz2 . | ||
</code> | </code> | ||
* Comprimere la directory corrente (2): | |||
<code> | <code> | ||
$ tar cvjf current.tar.bz2 * | $ tar cvjf current.tar.bz2 * | ||
</code> | </code> | ||
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: | |||
<code> | <code> | ||
$ tar cf - /some/directory | (cd /another/directory && tar xf -) | $ tar cf - /some/directory | (cd /another/directory && tar xf -) | ||
</code> | </code> | ||
* Estrarre tutti i file .h da un archivio: | |||
<code> | <code> | ||
$ tar xvzf source.tar.gz *.h | $ tar xvzf source.tar.gz *.h | ||
</code> | </code> | ||
* Cerca tutti i file .jpeg nella home e crea un archivio: | |||
<code> | <code> | ||
$ find ~ -type f -name "*.jpg" | xargs tar cvzf photo.tar.gz | $ find ~ -type f -name "*.jpg" | xargs tar cvzf photo.tar.gz | ||
</code> | </code> | ||
* Se stiamo cercando di creare un archivio molto grande è più conveniente il seguente metodo: | |||
<code> | <code> | ||
$ find ~ -type f -name "*.jpg" | xargs tar rvzf photo.tar.gz | $ find ~ -type f -name "*.jpg" | xargs tar rvzf photo.tar.gz | ||
Riga 604: | Riga 603: | ||
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: | |||
<code> | <code> | ||
$ tar xvjf archive.tar.bz2 file1.cpp file2.cpp file3.cpp | $ tar xvjf archive.tar.bz2 file1.cpp file2.cpp file3.cpp | ||
</code> | </code> | ||
* Estrarre file dalle subdirectory di un archivio: o subdirectory intere: | |||
<code> | <code> | ||
$ tar xvjf archive.tar.bz2 subdir1/file1.cpp subdir2/file2.cpp | $ tar xvjf archive.tar.bz2 subdir1/file1.cpp subdir2/file2.cpp | ||
</code> | </code> | ||
* Estrarre una intera subdirectory da un archivio: | |||
<code> | <code> | ||
$ tar xvjf archive.tar.bz2 subdir1/ | $ tar xvjf archive.tar.bz2 subdir1/ | ||
Riga 620: | Riga 619: | ||
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: | |||
<code> | <code> | ||
$ tar xvf archive.tar -T list.txt | $ tar xvf archive.tar -T list.txt | ||
</code> | </code> | ||
* Importare in un file di testo tutti gli elementi di un archivio: | |||
<code> | <code> | ||
$ tar tzf archive.tar.gz > list.txt | $ tar tzf archive.tar.gz > list.txt | ||
</code> | </code> | ||
* Eliminare da una directory contenente molti file solo quelli contenuti anche nell'archivio: | |||
<code> | <code> | ||
$ tar tzf archive.tar.gz | xargs rm -r | $ tar tzf archive.tar.gz | xargs rm -r | ||
</code> | </code> | ||
* Stimare la dimensione di un archivio prima di crearlo: | |||
<code> | <code> | ||
$ tar czf - directory/ | wc -c | $ tar czf - directory/ | wc -c | ||
</code> | </code> | ||
''(Grazie a [http://nerotux.tuxfamily.org Nerotux] per gli esempi sull'utilizzo di tar)'' | |||
=== Modificare l'ora di accesso a un file === | === Modificare l'ora di accesso a un file === |