IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

copie de fichiers de plusieurs répertoires vers un seul


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut copie de fichiers de plusieurs répertoires vers un seul
    Bonjour,

    Je voudrais copier des fichiers textes de plusieurs répertoires vers un seul.
    Voici mon architecture :

    répertoires sources des fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    /infocentre/prod/cmb/data/inf/bin/prc/
    /infocentre/prod/cmmc/data/inf/bin/prc/
    /infocentre/prod/cmso/data/inf/bin/prc/
    /infocentre/prod/bpe/data/inf/bin/prc/
    /infocentre/prod/cma/data/inf/bin/prc/
    /infocentre/prod/cmo/data/inf/bin/prc/
    /infocentre/dev/gicm/data/inf/bin/prc/
    répertoire cibles des copies de fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /infocentre/dev/gicm/data/inf/src/sap
    Le script est lancé dans le répertoire précédent à infocentre.
    Je n'arrive pas à aller dans chaque répertoire ne serait-ce que pour afficher les fichiers présents.
    Pouvez-vous m'aider?

    Voila le code que j'utilise pour afficher les fichiers présents :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for file in *.txt
    do
    Name=$(echo $file)
    echo "$Name"
    done

  2. #2
    Membre régulier Avatar de java_fun
    Inscrit en
    Novembre 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 117
    Points : 102
    Points
    102
    Par défaut


    peut tu mettre ton script entre la balise code(#).

    Cdlt

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Citation Envoyé par cell Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for file in *.txt
    do
    Name=$(echo $file)
    echo "$Name"
    done
    L'instruction 'for' ne fais pas ce que tu crois, d'où le soucis : for XXX in YYY parcourt la liste des YYY.

    Le mieux pour compndre est que tu exécutes le script suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/bash
    for list in Bonjour comment vas tu
    do
       echo "mot : " $list
    done
    Si tu souhiates lister des fichiers, il est possible que for créé la liste qu'il va parcourir, via des commandes shell :

    Les guillemets ` servent alors à indiquer au shell qu'il faut interpréter cette commande pour avoir la liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #!/bin/bash
    for list in `ls *.txt`
    do
       echo "fichier : " $list
    done
    N'hésites pas à poser des questions is tu ne comprends pas.

  4. #4
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    En bash, cette syntaxe fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls /infocentre/prod/{cmb,cmmc,cmso,bpe,cma,cmo,gicm}/data/inf/bin/prc/*txt
    Si ça marche, tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp /infocentre/prod/{cmb,cmmc,cmso,bpe,cma,cmo,gicm}/data/inf/bin/prc/*txt  /infocentre/dev/gicm/data/inf/src/sap

  5. #5
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut Avec find
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cd /infocentre
     
    find ./prod/cmb/data/inf/bin/prc/ ./prod/cmmc/data/inf/bin/prc/ ./prod/cmso/data/inf/bin/prc/ ./prod/bpe/data/inf/bin/prc/ ./prod/cma/data/inf/bin/prc/ ./prod/cmo/data/inf/bin/prc/ ./dev/gicm/data/inf/bin/prc/ -type f -name "*.txt" -exec cp {} ./dev/gicm/data/inf/src/sap/. \;

    Si la liste des repertoires est exhaustive sur les possiblilites de type "data/inf/bin/prc/"
    Ce qui suit fait la meme chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cd /infocentre
    find ./*/*/data/inf/bin/prc  -type f -name "*.txt" -exec cp {} ./dev/gicm/data/inf/src/sap/. \;

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/11/2006, 17h48
  2. [VB.net] copie de fichier d'un serveur vers un poste local
    Par junoreactor dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/11/2006, 19h54
  3. Copier tous les fichiers d'un répertoire vers un autre
    Par papilou86 dans le forum Langage
    Réponses: 1
    Dernier message: 09/09/2006, 01h02
  4. Copie de fichiers d'un répertoire à un autre
    Par fleur_de_rose dans le forum MFC
    Réponses: 4
    Dernier message: 01/03/2006, 11h59
  5. Copie du contenu d'un répertoire vers un autre
    Par IG88 dans le forum Windows
    Réponses: 4
    Dernier message: 30/07/2004, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo