PDA

Visualizza la versione completa : [bash] Ciclo e tar.gz


Ranma2
03-01-2007, 14:47
ho una 20 di cartelle da comprimere per creare una copia di backup, dato che non vorrei creare un unio archivio volevo crearne uno per ogni cartella mediante un ciclo, ma non so da che parte iniziare

Qualcuno puà darmi una mano?

Dr. Fiemost
03-01-2007, 15:38
Qualcosa tipo:

find . -type d -exec tar -czf {}.tar.gz {} \;

Ranma2
03-01-2007, 15:41
però questo mi crerebbe degli archivi anche con le sottodirectory, e ci sarebbe ridondanza di dati se non erro, senza parlare di una difficile ricerca dei dati

Dr. Fiemost
03-01-2007, 15:50
Ma tu hai delle directory nidificate e vuoi archiviare solo i file contenuti e non le sottodirectory?
Se è così la faccenda è più complicata poiché tar include automaticamente le subdirectory.

Ranma2
03-01-2007, 15:52
es.

ho 10 cartelle, di queste 10 all'interno ci sono cartelle e file

io vorrei creare il tar.gz di queste 10 cartelle con tutto il suo contenuto

indi 10 file tar.gz

Dr. Fiemost
03-01-2007, 15:55
Se queste 10 cartelle sono tutte nella stessa directory il comando che ti ho suggerito prima dovrebbe funzionare.

Ranma2
03-01-2007, 15:57
uhm, se le 10 cartelle stanno in //home e il backup deve andare in //mnt/backup

come verrebbe fuori?

Dr. Fiemost
03-01-2007, 15:59
Da /home fai:

find . -type d -exec tar -czf /mnt/backup/{}.tar.gz {} \;

oppure direttamente:

find /home -type d -exec tar -czf /mnt/backup/{}.tar.gz {} \;

Ranma2
03-01-2007, 16:06
uhm, mi crea un unico file home.tar.gz

Ranma2
03-01-2007, 16:21
ho usato questa, in quanto sarà crontab ad eseguirle

find /home -type d -exec tar -czf /mnt/backup/{}.tar.gz {} \;


ma come detto prima mi crea un unico file

Loading