tar

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
pino.giaquinto
Linux 2.x
Linux 2.x
Messaggi: 331
Iscritto il: mer 25 gen 2006, 11:14

tar

Messaggio 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'?

Avatar utente
Darathorn
Linux 2.x
Linux 2.x
Messaggi: 315
Iscritto il: dom 28 nov 2004, 0:00
Nome Cognome: Francesco Braga
Slackware: 12.1
Kernel: 2.6.24.5-smp
Desktop: fluxbox
Località: Rezzato
Contatta:

Messaggio da Darathorn »

tar xfv file.tar per scompattare

Avatar utente
pino.giaquinto
Linux 2.x
Linux 2.x
Messaggi: 331
Iscritto il: mer 25 gen 2006, 11:14

Messaggio 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?

Avatar utente
GuRpS
Linux 2.x
Linux 2.x
Messaggi: 326
Iscritto il: ven 14 mag 2004, 0:00
Località: Varese
Contatta:

Messaggio 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...

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Perché non usi subversion?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio 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

Avatar utente
pino.giaquinto
Linux 2.x
Linux 2.x
Messaggi: 331
Iscritto il: mer 25 gen 2006, 11:14

tar --interactive

Messaggio 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:

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Continuo a consigliare subversion per quello che vuoi fare.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Messaggio 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

Avatar utente
pino.giaquinto
Linux 2.x
Linux 2.x
Messaggi: 331
Iscritto il: mer 25 gen 2006, 11:14

Messaggio 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.

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio 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.

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Messaggio da IceSlack »

scusate ma l'opsione -G che fa d aincrementale non replacia il file piu' aggiornato?

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

IceSlack ha scritto:replacia
<ot>e usare il verbo `sostituire' che, almeno quello, è italiano puro?</ot> :lol:

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Messaggio 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

Rispondi