Pagina 1 di 1
tar, comprimere singolarmente i file di una directory [RIS]
Inviato: mar 22 mag 2012, 11:56
da tgmx
Ciao a tutti,
sto cercando di fare un piccolo script, lanciato da cron che comprima i file che si trovano in una directory creando un tar.gz singolo per ogni file.
Es:
se la directory contiene i file:
a.dat
b.dat
c.dat
vorrei ottenere con un solo passaggio:
a.tar.gz
b.tar.gz
c.tar.gz
e se proprio vogliamo esagerare non sarebbe male eliminare l'originale dopo la conpressione...
Avete idee...

Re: tar, comprimere singolarmente i file di una directory
Inviato: mar 22 mag 2012, 12:39
da conraid
una cosa simile
Codice: Seleziona tutto
for FILE in "*"; do tar -czf $(basename $FILE).tar.gz $FILE; done
anche se migliorabile, per eliminare ti basta rm $FILE
prova così
Codice: Seleziona tutto
for FILE in "*"; do
tar -czf $(basename $FILE).tar.gz $FILE
rm $FILE
done
Re: tar, comprimere singolarmente i file di una directory
Inviato: mar 22 mag 2012, 16:50
da targzeta
Per eliminare i file basta questa opzione di tar:
Codice: Seleziona tutto
--remove-files
remove files after adding them to the archive
però, parliamone, che senso ha creare un archivio con dentro solo un file? Non è più semplice zipparlo se vuoi ridurne lo spazio? Cioé, un archivio è un archivio...no?
Emanuele
Re: tar, comprimere singolarmente i file di una directory
Inviato: mar 22 mag 2012, 21:02
da tgmx
conraid ha scritto:una cosa simile
Codice: Seleziona tutto
for FILE in "*"; do tar -czf $(basename $FILE).tar.gz $FILE; done
anche se migliorabile, per eliminare ti basta rm $FILE
prova così
Codice: Seleziona tutto
for FILE in "*"; do
tar -czf $(basename $FILE).tar.gz $FILE
rm $FILE
done
Grazie.
Ho dovuto aggiungere le virgolette su:
altrimenti basename dava errore.
Così però mi crea un unico archivio con tutti i file dentro.
Apparentemente il FOR non scorre il contenuto della directory ma restituisce l'elenco dei file mettendoli tutti dentro la variabile FILE in una sola volta.
Re: tar, comprimere singolarmente i file di una directory
Inviato: mer 23 mag 2012, 2:03
da cymon
Non è più carino:
comunque il tar di un singolo file è effettivamente inutile, a questo punto, se proprio serve, meglio partire direttamente con gzip.
Re: tar, comprimere singolarmente i file di una directory
Inviato: mer 23 mag 2012, 8:44
da tgmx
cymon ha scritto:Non è più carino:
comunque il tar di un singolo file è effettivamente inutile, a questo punto, se proprio serve, meglio partire direttamente con gzip.
Perfetto,
così funziona. Grazie.
Per quanto riguarda gzip, l'ho appena provato in questo modo:
ed effettivamente lavora meglio dato che elimina anche l'originale.
Grazie a tutti!
Re: tar, comprimere singolarmente i file di una directory [R
Inviato: mer 23 mag 2012, 10:25
da conraid
per basename si vede che hai nomi di file con spazi, per il for forse c'è qualche errore di sintassi
se usi gzip, ti basta gzip *
Re: tar, comprimere singolarmente i file di una directory [R
Inviato: mer 23 mag 2012, 10:33
da tgmx
Grande!
Sempre piu' facile... gzip fa miracoli ed io lo ignoravo completamente.