Besoin d'un script

Bonjour,
J'ai besoin d'un script permettant de parcourir une liste de répertoires afin d'y récupérer tous les fichiers d'une liste. Par exemple ma liste de fichier peut être la suivante:
fichier1
fichier2
fichier3
fichier4
fichier5.

Les répertoires peuvent être par exemple rep1 contenat fichier1 et fichier2; rep2 contenant fichier3 et fichier4; rep3 contenant fichier5.

Les fichiers recupérer peuvent être mis dans un répertoire rep4.

Je dois récuperer quelque 3000 fichiers dans une trentaite de répertoires, sans un tel script c'est le boulot de toute une journée.
Merci d'avance de votre aide.
Cdlt,
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Contributeur
    J'ai des questions :
    ces fichiers ont des lettres en communs dans leur nom?
    est-ce qu'ils sont placés aléatoirement dans les dossiers ou sont-ils toujours à la même place?

    J'ai un scripts récursif ou il suffit juste de modifier l'action à effectuer dedans, je m'en sers pour parcourir les répertoires d'un serveur et afficher la liste de tous les fichiers, il est pit être pas bien programmé mais il a le mérite de tout me lister.
    Modifié je pense qu'il fera ton affaire.

    Mais ces fichiers il ne change jamais ? il n'y a que eux dans les répertyoires ou bien ils sont placés avec d'autres fichiers/dossiers ?

    Donne un peu plus d'infos sur la structure etc etc ;) Ca aodera pit etre à avancer :)

    Loup.
    0
    1. Bonjour arth,
      les fichiers ont éffectivement des noms simulaires et les repertoires en question ne contiennent que ces genres de fichiers, ton script peut faire l'affaire, merci de me l'envoyer.
      Cdlt,
      0
      1. Contributeur
        Voici mon script en sh :

        # recursivity.sh

        folder=$1

        function recursivity
        {
        if [ -e $folder ] && [ -d $folder ]
        then
        generate_files_list $folder
        else
        echo Mauvais paramétrage. Le paramètre doit être un dossier et exister.
        exit
        fi
        }

        function generate_files_list
        {
        path=$1
        cd $path
        liste=$(ls)
        for i in $liste
        do
        if [ -d $i ]
        then
        cd $i
        generate_files_list $(pwd)
        else
        //
        // C'est là ou il faut mettre l'action à effectuer sur le fichier trouvé
        //
        fi
        done
        cd ..
        }

        recursivity
        0
        1. arth,
          j'ai oublié de préciser que je suis dans un environnement win XP, aurait-tu l'équivalent pour windows?
          Cdlt,
          0
          1. Bonsoir,

            Ouvrir une fenetre DOS puis tapper la commande suivante :

            cd c:\
            xcopy /s fich*.* c:\toto\*.*

            Cette commande copiera tous les fichiers commencant par fich dans le répertoire toto sous C;

            Cordialement

            Delaclya
            0
            1. Contributeur
              Ah merde pardon ^^ désolé :) j'ai pas encore fait :)
              0
              1. Bonjour,
                Delaclya je n'ai pas besoin de tous les fichiers de tous les repertoires, mais de seulement certains d'entre eux ayant tous des noms de même format mais éparpillés dans divers repertoires. Voici la description que j'avais donnée:
                Par exemple ma liste de fichier peut être la suivante:
                fichier1
                fichier2
                fichier3
                fichier4
                fichier5.

                Les répertoires peuvent être par exemple rep1 contenat fichier1 et fichier2; rep2 contenant fichier3 et fichier4; rep3 contenant fichier5.

                Les fichiers recupérer peuvent être mis dans un répertoire rep4.

                Cdlt,
                0