Pagina 1 di 1

tar

Inviato: ven 10 feb 2006, 19:58
da pino.giaquinto
Ho recuperato un vecchio hard disk 2,5", l'ho collegato alla porta usb e mi piacerebbe utilizzarlo per avere una copia dei miei download, file di configurazione, etc. Non si sa mai...!
Sto studiando il comando 'tar' ed ho scoperto che se digito:

Codice: Seleziona tutto

tar cvf mia_dir.tar /mia_dir
mi salva la directory mia_dir e tutto il suo contenuto... e fin qui ci siamo :-)
Se modifico uno dei file contenuti in mia_dir e digito:

Codice: Seleziona tutto

tar uvf mia_dir.tar /mia_dir
mi aggiunge in mia_dir.tar il file modificato... quindi ora ne contiene 2 copie con data, ora ed eventuale dimensione diversa.
Uhmmm... mi piace, potrebbe essere utile poter ripristinare un file ad una precedente versione!
Il problema e': ma se voglio tirar fuori da mia_dir.tar la vecchia versione del file che ho appena modificato... come si fa'?

Inviato: ven 10 feb 2006, 20:27
da Darathorn
tar xfv file.tar per scompattare

Inviato: ven 10 feb 2006, 20:34
da pino.giaquinto
Forse non sono stato sufficientemente chiaro: nel file mia_dir.tar ci sono 2 copie di uno stesso file... sono 2 file che hanno lo stesso nome e che differiscono solo per dimensione e data.
Se uso tar xvf
1) mi estrae TUTTO e quindi non solo il file che serve a me
2) mi ritrovo solo la copia piu' recente del file che ho modificato.
Io vorrei sapere: considerando il fatto che la vecchia copia del file modificato e' ancora nel tar... e' possibile recuperarla?

Inviato: ven 10 feb 2006, 20:41
da GuRpS
Hum...
ma scusa allroa non ti covnniene buttar giu' 2 righe in bash e fare in modo che ti venga un output tipo:

backup_01012006.tar.gz
backup_01022006.tar.gz

Cosi' non hai problemi?
Perche' mi sa che se il nome del file e' identico ti viene sovrascritto quello precedente...

Inviato: ven 10 feb 2006, 21:00
da MAT
Perché non usi subversion?

Inviato: sab 11 feb 2006, 11:09
da targzeta
pino.giaquinto ha scritto:...Io vorrei sapere: considerando il fatto che la vecchia copia del file modificato e' ancora nel tar... e' possibile recuperarla?
Certo,
tar -xf nomefile.tar nomefiledaestrarre

Occhio, nomefiledaestrarre deve essere compreso di path, a meno di utilizzare i caratteri jolly, accettati da tar. Se intendi usare i caratteri jolly ricorda di quotarli per la bash, ovvero ad esempio:

tar -xf nomefile.tar "*casa*"

Nota le "".

Spina

tar --interactive

Inviato: sab 11 feb 2006, 17:45
da pino.giaquinto
Non mi sono ancora arreso e per il momento sono riuscito a fare qualcosa utilizzando l'opzione --interactive (anche --confirmation puo' andare bene... e non ho ancora indagato sulla differenza tra queste due opzioni).
Infatti se ho diverse copie del file prova.txt in mia_dir.tar posso:
1) estrarre l'ultima versione con

Codice: Seleziona tutto

tar -xvf mia_dir.tar mia_dir/prova.txt
NOTA: in realta' in questo modo vengono estratte tutte le copie del file che vengono man mano sovrascritte... ed essendo la copia piu' recente l'ultima ad essere estratta... sono stato chiaro, spina?
E se prova.txtx e' un file di 200 MB e ne ho 10 copie nell'archivio? Non mi sembra una buona idea...
2) estrarre una delle versioni intermedie con:

Codice: Seleziona tutto

tar --interactive -xvf mia_dir.tar mia_dir/prova.txt
In tal modo vengono richieste le conferme (y/n) per ogni prova.txt presente nel file mia_dir.tar partendo dalla versione piu' vecchia fino ad arrivare a quella piu' recente.
Funziona... anche se saro' costretto a dare un'occhiata all'archivio con:

Codice: Seleziona tutto

tar -tvf mia_dir.tar
dovro' ricordare la posizione nell'archivio della copia di prova.txt che voglio estrarre :wink:

Inviato: sab 11 feb 2006, 20:25
da MAT
Continuo a consigliare subversion per quello che vuoi fare.

Inviato: sab 11 feb 2006, 23:47
da targzeta
Effettivamente la prima volta non avevo capito bene il problema.

Dall' Info di tar:
Both `--update' and `--append' work by adding to the end of the archive. When you extract a file from the archive, only the version stored last will wind up in the file system, unless you use the `--backup' option.

Se fai:

tar --backup=t

Ti estrae tutte le versioni con nomi diversi, ovvero, la prima versione si chiamerà nomefile.~1~, la seconda nomefile.~2~
etc.. etc...

Puoi giocare con l'opzione --atime-preserve per ottenere le versioni con il tempo di ultima modifica originale (quello che vedi con "tar -tv" ).

In ogni caso non sembra sia possibile, a meno dell'interazione, scegliere di estrarre una versione specifica.

Se ce la fai, fammi sapere. Altrimenti prova subversion come dice MAT. Io non l'ho mai usato, magari fa davvero al caso tuo!!!

Spina

Inviato: dom 12 feb 2006, 12:41
da pino.giaquinto
OK MAT... ci sto provando con subversion!
Ho installato il pacchetto che ho trovato su Slackware Linux Packages e sto leggendo il manuale che ho scaricato dal sito di subversion: 299 pagine in inglese... sigh!
Sono a pag. 7 ed ho capito che se voglio mantenere la storia della directory /etc devo:
1) creare il repository
2) salvare nel repository il contenuto di /etc
3) creare una working copy di /etc (supponiamo /etc.svn)
Quindi se voglio modificare per esempio il mio fstab in /etc devo farlo in /etc.svn, copiarlo in /etc e poi aggiornare il repository?
Insomma... e' strano ma se ho ben capito devo avere per forza 2 copie della stessa /etc.
Leggero' tutta la guida... promesso... ma ho bisogno solo di un piccolo aiuto, giusto per cominciare a capirci qualcosa.

Inviato: dom 12 feb 2006, 22:45
da MAT
Devi scaricare la directory padre dove vuoi creare la tua directory in una locazione a scelta (checkout) poi lavorare in quella. Ad esempio per crearvi una directory dentro fai mkdir, copi al suo interno quello che ti serve e poi fai add e commit. Per controllare lo stato di una directory sotto versioning control usi status. Dai un'occhiata qui per informazioni sui comandi di svn.

Inviato: lun 13 feb 2006, 23:30
da IceSlack
scusate ma l'opsione -G che fa d aincrementale non replacia il file piu' aggiornato?

Inviato: lun 13 feb 2006, 23:47
da MAT
IceSlack ha scritto:replacia
<ot>e usare il verbo `sostituire' che, almeno quello, è italiano puro?</ot> :lol:

Inviato: mar 14 feb 2006, 9:11
da IceSlack
MAT ha scritto:
IceSlack ha scritto:replacia
<ot>e usare il verbo `sostituire' che, almeno quello, è italiano puro?</ot> :lol:
OT: LOL . scusate provvedero' la prossima volta :D