Anzeige:
Ergebnis 1 bis 5 von 5

Thema: TAR-Archive mit Perl erstellen - aber wie?

  1. #1
    Registrierter Benutzer
    Registriert seit
    14.02.2001
    Ort
    Stuttgart
    Beiträge
    51

    Question TAR-Archive mit Perl erstellen - aber wie?

    Hallo,

    ich das was ich über "tar cvfz irgendwas.tar.gz /verzeichnis" in der Shell erziele, gleichermassen mit Hilfe eines Perl-Scripts erreichen.
    Dass Perl 5 hierzu Module wie "Archive::Tar", "Compress::Zlib" und "File::Find" unter www.CPAN.org anbietet ist klar.
    Was mir noch so klar ist, ist der Gebrauch des Moduls "File::Find", so daß es den Verzeichnisbaum inclusive der darin enthaltenen Dateien ins in-memory liest.
    Ich bin soweit, dass mir

    ...
    $dir = "/usr/www/";
    $ext = "html";


    find(\&search, $dir);
    sub search{
    if(/$ext$/i){
    $tar->add_files($_);
    }
    }
    ...

    alle HTML-Dateien aus $dir in ein Tar-Archive komprimiert packt. Nur sucht die Routine immer tiefer - soll sie ja auch - aber sie sollte die Verzeichnisstruktur mit aufzeichnen und nicht Dateien aus einem Unterverzeichnis in eine Ebene mit allen Dateien schmeissen.

    Kennt sich damit jemand aus und kann mir das Wie oder Beispielscripte mitteilen?

    Also da wäre mir super geholfen! Besten Dank im Voraus!

    Andreas

  2. #2
    Registrierter Benutzer
    Registriert seit
    01.08.2002
    Beiträge
    6
    Hi, eine kleine Aenderung bringt den erwuenschten Erfolg:

    Hieraus:
    Code:
    $tar->add_files($_);
    machst du einfach:
    Code:
    $tar->add_files($File::Find::name);

  3. #3
    Registrierter Benutzer
    Registriert seit
    14.02.2001
    Ort
    Stuttgart
    Beiträge
    51

    Smile

    Alles okay! Vielen Dank, das war, nach was ich suchte!

    Andreas

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.02.2001
    Ort
    Stuttgart
    Beiträge
    51

    Question

    Na ja,
    ganz okay ist das Resultat noch nicht. Es werden jetzt zwar die Verzeichnisse mitangelegt, aber mit dem Datum 01.01.1970 01:00 und den Rechten 777, während die darin enthaltenen Dateien mit Datum und Rechten den Orignalen entsprechen. Ein weiterer Nebeneffekt ist, dass einige Verzeichnisse beliebig oft mit noch mehr Unterverzeichnissen gebildet werden. Und das verstehe ich ehrlich gesagt momentan nicht, von einer Lösung ganz zu schweigen.

    Das Script habe ich zu

    find(\&search, $dir);

    sub search{
    $tar->add_files($File::Find::name);
    }

    verändert.

    Wäre toll, wenn es hierauf ebenfalls so eine brauchbare Antwort gäbe.

    Andreas

  5. #5
    Registrierter Benutzer
    Registriert seit
    01.08.2002
    Beiträge
    6
    Jo, komisch.

    Ich hab allerdings in letzter Zeit auch einige komische Sachen mit File::Find bei mir entdeckt.
    Vielleicht ist das modul einfach nur alles andere als bugfrei.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •