Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Comprimere con Perl

  1. #1

    Comprimere con Perl

    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!

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    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

  3. #3
    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

  4. #4
    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...

  5. #5
    avevo provato con *Archive::Tar* ma non mi comprime le directories....che pa**e...

  6. #6
    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

  7. #7
    Credo che tu non abbia molta dimestichezza con Linux .
    programmo in Perl su MacOs9 (quindi niente webserver...) e poi metto tutto sul netfirms.com (dove poi uso le chiamate di sistema)

    Allora, fare una chiamata (system) al sistema, può generare problemi di sicurezza
    cmq io uso una sola chiamata: ls -t *.topic

    Cmq TAR, non comprime, ma ragruppa i file in un unico file non compresso...
    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!

  8. #8
    cmq io uso una sola chiamata: ls -t *.topic
    Questa la puoi evitare, in perl esiste una "procedura" chiamata globbing, che ti fa il list di una dir. ed e molto semplice

    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!

    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!
    con il comando oppure con la libreria?
    1) per il comando guarda qua: http://www.cpqlinux.com/tar.html
    2) per la libreria non saprei non la conosco!

    bye bye

  9. #9
    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?!

  10. #10
    cmq questo codice ha funzionato alla perfezione:

    codice:
    tar -cvf mystuff.tar mystuff/
    Grandioso!!!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.