• # En Perl

    Posté par (site web personnel) . En réponse au message Recréation d'arborescence et de contenu. Évalué à 1.

    Sinon, avec un langage qui n’est pas assez idiot pour interpréter ses variables avant d’analyser la ligne de commande, ça évite quand même bien des surprises et incertitudes :

    #!/usr/bin/perl -w
    use strict;
    use Cwd;
    use File::Find;
    @ARGV == 2 or die "Recrée une arborescence avec des fichiers vides.\nUtilisation : 0ドル repertoire_source repertoire_destination\n";
    my ($src, $dst) = @ARGV;
    # Avant de se placer dans le répertoire source, il faut s’assurer d’avoir le
    # chemin absolu du répertoire destination.
    $dst =~ m{^/} or $dst = getcwd . "/$dst";
    chdir $src or die "Impossible d’accéder à $src\n";
    -d $dst or mkdir $dst or die "Impossible de créer $dst\n";
    sub cree {
     # Attention, les liens symboliques ne sont pas gérés !
     if (-d) {
     -d "$dst/$File::Find::name" or mkdir "$dst/$File::Find::name" or warn "Impossible de créer le répertoire $dst/$File::Find::name\n";
     } elsif (-f) {
     open my $fich, '>', "$dst/$File::Find::name" or warn "Impossible de créer le fichier $dst/$File::Find::name\n";
     }
     # Les pipes, devices ou autres sont ignorés.
    }
    find(\&cree, '.');

    Prendre une bonne disposition : beop.free.fr