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 :

script pour naviguer dans une arborescence


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Par défaut script pour naviguer dans une arborescence
    Bonjour,

    Je ne sais pas comment donner un titre à mon sujet, désolé mais je vais essayer de vous expliquer!

    Voilà, j'ai des sous repertoires qui contiennent des fichiers .exe, dans chaque sous repertoire.

    exp: /toto/titi/tata/
    dans toto, titi et tata, se trouvent des fichiers .exe

    j'aimerai renomer ces fichiers en .txt.

    Si j'avais des fichiers .exe uniquement par exemple dans /toto/titi/tata/*.exe, la solution est facile, faire juste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
    for i in /toto/titi/tata/*.exe
    do
    mv $i `basename $i .exe`.txt
    done
    exit0
    sauf que je ne sais pas comment faire pour parcourir tous les repertoir et trouver ces fichiers pour ensuite les renommer.
    J'ai pensé à find puis pipe |, mais je n'ai pas d'idée pour la syntaxe

    Merci pour votre aide, je suis un débutant sur linux et le shell

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #!/bin/sh
    for i in `find <chemin> -name "*.exe" -type f`
    do
    mv $i `basename $i .exe`.txt
    done
    exit0
    Il parcourera de manière récursive les sous-repertoires à partir de <chemin>

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Par défaut
    Bonjour

    Merci pour ton code, effectivement ça parcourt les sous répertoire, mais là je viens d'exécuter le programme ça marche, mais je n'ai plus les fichiers dans leurs répertoire mais à l'endroit de l'exécution du script!

    En gros, mes fichier son renommé et déplacé dans mon répertoire courant. dans mon home, j'ai tous les fichiers en .txt, donc complètement déplacé des sous répertoires! ca vient de la commande mv! est ce que tu as une solution, ou quelqu'un sur ce forum??

    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re,

    oui effectivement. tu peux récupérer le répertoire d'origine avec dirname pour les stocker au même endroit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/sh
    for i in `find <chemin> -name "*.exe" -type f`
    do
    target_dir=`dirname $i`
    mv $i $target_dir/`basename $i .exe`.txt
    done
    exit0

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 99
    Par défaut
    Désolée, mais ca ne marche pas,
    est ce qu'il ne faut pas inverser $target_dir?
    si je fais mv $i $taget_dir `basename $i .exe`.txt
    j'ai le message: when moving multiple files, last argument must be a directory

    j'ai aussi essayé de faire:

    mv $target_dir $i `basename $target_dir $i .exe`.txt, une vrai cata! je suis à côté!

    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mv $i $target_dir/`basename $i .exe`.txt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] PHP script pour recherche dans une bdd mysql
    Par stone144 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/12/2010, 12h06
  2. Réponses: 2
    Dernier message: 05/07/2010, 10h37
  3. script de suppression de fichiers dans une arborescence
    Par linuxman dans le forum VBScript
    Réponses: 7
    Dernier message: 14/05/2010, 09h37
  4. [Batch] Script pour exécuter un autre script dans une arborescence de repertoires.
    Par jano_dave dans le forum Scripts/Batch
    Réponses: 16
    Dernier message: 02/07/2009, 14h43
  5. [BATCH]script pour encoder des fichiers dans une arborescence
    Par ashgan44 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 11/05/2009, 15h04

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