Newsgroup: it.comp.os.linux.iniziare
Titolo: Creare archivio tar.gz

 
Vorrei creare un archivio tar.gz della cartella pluto nel
percorso /home/pippo/pluto quindi, dalla cartella di lavoro pippo eseguo
 
tar -czvf pluto
 
ma ottengo un archivio completo del percorso ovvero /home/pippo/pluto;
che opzione devo usare per ottenere un archivio privo del
percorso /home ovvero avente come toplevel la stessa catella pluto?
Ovviamente ho consultato il man tar ma non trovo riferimenti
 
-- 
 
 

"B.C." ha scritto:

Ti ricopio un mio vecchio appunto.
Fai delle prove.
 
===============================================================================
 
Usare GNU tar con opzione "-C"
-------------------------------------------------------------------------------
 
...............................................................................
Creazione di una tarball senza l'inizio del path completo
...............................................................................
 
Se il path completo dei files da archiviare è /dir0/dir1/dir2/dir3/ ma si vuole
ottenere soltanto /dir3/, si farà:
 
 tar -cvjf archivio.tar.bz2 -C /dir0/dir1/dir2/ dir3/
 
dove tra "/dir0/dir1/dir2/" e "dir3/" c'è uno " " (spazio)
 
{...snip...}
 
Così tar sostituisce /dir0/dir1/dir2/ con ./dir3/ grazie all'opzione "-C".
 
Se il path completo dei files da archiviare è /dir0/dir1/dir2/dir3/ ma si vuole
archiviare tutto nella radice della tarball, si farà:
 
 tar -cvjf archivio.tar.bz2 -C /dir0/dir1/dir2/dir3/ .
 
cioè tutto il path "/dir0/dir1/dir2/dir3" verrà sostituito da "." AKA la radice
dell'archivio.
 
...............................................................................
Estrazione senza l'inizio del path completo da una tarball con il path completo
...............................................................................
 
Invece di eliminare la parte iniziale del path d'origine durante la creazione
della tarball, è possibile fare un'estrazione che non la consideri. Una tarball
di dir3/, creata così:
 
 tar -cvjf archivio.tar.bz2 /dir0/dir1/dir2/dir3/
 
potrà avere avere un'estrazione così:
 
 tar --strip-components=3 -xvjf archivio.tar.bz2 -C .
 
dove "--strip-components=3" elimina (solo in estrazione) l'inizio del path cioè
elimina "/dir0/dir1/dir2" (ma non il percorso di eventuali ulteriori subdir), e
il tutto verrà estratto in "." AKA il dir corrente.
 
...............................................................................
Estrazione da una tarball cambiando il path di destinazione
...............................................................................
 
Per default, il path di destinazione è "." AKA la dir corrente ma è possibile
destinare altrove, con:
 
 tar -xvjf archivio.tar.bz2 -C /home/destinazione/
 
così tar manterrà il path specificato nella creazione della tarball ma estrarrà
nel path specificato dall'opzione "-C" cioè se è stata creata una tarball così:
 
 tar -cvjf archivio.tar.bz2 -C /dir0/dir1/dir2/ dir3/
 
e poi viene estratta così:
 
 tar -xvjf archivio.tar.bz2 -C /home/dir4/
 
allora i contenuti di dir3/ si trovano in /home/dir4/dir3/.
 
...............................................................................
Creare la tarball in una dir diversa da quella corrente
...............................................................................
 
Basta specificarne il path completo nel nome dell'archivio stesso:
 
 tar -cvjf /path/completo/archivio.tar.bz2 -C /dir0/dir1/dir2/ dir3/
 
{...snip...}
 

 Fai delle prove.
 
grazie :-)
 
-- 
 
 

 --
 
Aggiungo alla risposte, tar inserisce il percorso completo in fase di 
creazione dell'archivio, ma di default in fase di esplosione dell'archivio 
scompatta a partire dalla directory corrente.
 
Quindi se si vuole evitare sovrascritture non volute basta esplodere 
l'archivio in una directory diversa da quella di creazione dell'archivio. 
(con -t si puo' controllare prima)
 


https://xkcd.com/1168/
 

"RedWiz" ha scritto:

cbf

Tue, 9 Jan 2018 14:39:11 +0000 (UTC)

:-)
 
per la cronaca, ho risolto, grazie naturalmente all'appunto di pino,
inserendo nel menu contestuale di thunar la seg. azione
 
xfce4-terminal -x tar -czvf %n.tar.gz -C %d %N
 
cosi posso comprimere una cartella con un semplice click (lo so,
qualcuno storcerà il naso, ma ...)
 
--