come comprimo il contenuto di una cartella in Perl?
magari se mi dite il comando *nix equivalente fa lo stesso...(poi lo chiamerò con una system)
Grazie!
come comprimo il contenuto di una cartella in Perl?
magari se mi dite il comando *nix equivalente fa lo stesso...(poi lo chiamerò con una system)
Grazie!
Non credo che si possa fare da Perl direttamente.
In unix/linux esiste il comando gzip che comprime i file (gunzip per decomprimere), ma dovrebbe anche essere inglobato nei comandi tar / gnutar .
Vedi le pagine dei manuali rispettivi.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
Io non l'ho mai fatto, direttamente da perl, comunque CPAN ha restituito questo:
http://search.cpan.org/search?query=compress&mode=all
se hai voglia di "studiare" un po qui trovi la soluzione senza usare una chiamata di sistema (meno si fanno meglio e!).
bye bye
grazie mille...ma vorrei approfondire questo fatto sulle chiamate di sistema che meno si fanno e meglio è...attualmente un mio script campa solo di questo...
avevo provato con *Archive::Tar* ma non mi comprime le directories....che pa**e...
Allora, fare una chiamata (system) al sistema, può generare problemi di sicurezza, di vario genere, ecco perche' e meglio evitare Oltretutto di rendi architettura-dipendente, se provi ad esegiure lo script sotto un altra OS, il tutto va a donne di facili costumi
Credo che tu non abbia molta dimestichezza con Linux .
Cmq TAR, non comprime, ma ragruppa i file in un unico file non compresso, se vuoi comprimere devi utilizzare le librerie zlib, o bz2, o gzip, o zip.
Prima ti credi l'archivio tar, e poi lo comprimi.
buye bye
programmo in Perl su MacOs9 (quindi niente webserver...) e poi metto tutto sul netfirms.com (dove poi uso le chiamate di sistema)Credo che tu non abbia molta dimestichezza con Linux .
cmq io uso una sola chiamata: ls -t *.topicAllora, fare una chiamata (system) al sistema, può generare problemi di sicurezza
va benissimo comunque...ma posso ragruppare i file di dirs contenute in altre dirs?Cmq TAR, non comprime, ma ragruppa i file in un unico file non compresso...
ovvero:
/db/forum1/*.topic
/db/forum2/*.topic
vorrei archiviare tutta la dir "db"
grazie mille!
Questa la puoi evitare, in perl esiste una "procedura" chiamata globbing, che ti fa il list di una dir. ed e molto semplicecmq io uso una sola chiamata: ls -t *.topic
my @lista = </path/*.ext> # Lista file
ovviamente hai un array che puoi trattare come vuoi, cosi hai la lista dei file contenuti nella cartella
esempietto:
while(</db/forum1/*.topic>) {
print "filename: ".$_;
}
ti stampa la lista dei file!
con il comando oppure con la libreria?va benissimo comunque...ma posso ragruppare i file di dirs contenute in altre dirs?
ovvero:
/db/forum1/*.topic
/db/forum2/*.topic
vorrei archiviare tutta la dir "db"
grazie mille!
1) per il comando guarda qua: http://www.cpqlinux.com/tar.html
2) per la libreria non saprei non la conosco!
bye bye
grazie...ma a me i files servono ordinati in ordine di ultima modifica...naturalmente l'avrei potuto fare con stat di perl e altro codice , ma ho sempre creduto (e lo credo ancora) che la chiamata ls -t di Unix sia di gran lunga più veloce...
smentiscimi?!
cmq questo codice ha funzionato alla perfezione:
Grandioso!!!!!codice:tar -cvf mystuff.tar mystuff/