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 :

[find] Problème avec -exec


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut [find] Problème avec -exec
    Bonjour.

    Comme la discussion est orientée autour de find, je voudrai un peu d'aide. En effet, je n'arrive pas à faire marcher la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ./ -name *.exe -exec mv -v '{}' ../exe_folder \ ;
    Mon objectif c'est qu'elle copie tous les fichiers de l'arborescence issue du répertoire courant vers le répertoire ../exe_folder. Mais ça ne marche pas, pouvez vous me dire pourquoi ?

  2. #2
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Par défaut
    Citation Envoyé par kromartien
    Bonjour.

    Comme la discussion est orientée autour de find, je voudrai un peu d'aide. En effet, je n'arrive pas à faire marcher la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ./ -name *.exe -exec mv -v '{}' ../exe_folder \ ;
    Mon objectif c'est qu'elle copie tous les fichiers de l'arborescence issue du répertoire courant vers le répertoire ../exe_folder. Mais ça ne marche pas, pouvez vous me dire pourquoi ?
    Enlève les quotes autour des accolades, il n'y en a pas normalement
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  3. #3
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    (C'eût été mieux de faire un nouveau thread, je pense.)

    Citation Envoyé par kromartien
    Mon objectif c'est qu'elle copie tous les fichiers de l'arborescence issue du répertoire courant vers le répertoire ../exe_folder. Mais ça ne marche pas, pouvez vous me dire pourquoi ?
    Copier ou déplacer ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name '*.exe' -exec mv '{}' ../exe_folder/ \;
    En l'absence de quote, l'expansion du shell se fait sur *.exe. Du coup, ça risque de faire une erreur dans les arguments de find.

    @Buchs : certes, les quotes sont inutiles autour des accolades dans la plupart des shells, mais ça ne peut en aucun cas être une erreur. Je conseille de les laisser quand on a le moindre doute (on n'est jamais trop prudent).

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Citation Envoyé par LLB
    (C'eût été mieux de faire un nouveau thread, je pense.)
    D'accord, si un modérateur peut le faire, j'ai ajouté un titre à ma question initiale.

    Citation Envoyé par LLB
    Copier ou déplacer ?
    D'accord c'est différent , j'aurai dû dire déplacer (mv déplace, cp copie) ou utiliser cp (d'ailleurs c'est plus prudent d'utiliser cp). Je vais donc copier.

    Citation Envoyé par LLB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name '*.exe' -exec mv '{}' ../exe_folder/ \;
    J'ai un problème, ça ne marche pas plus. J'ai le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find: Paramètre manquant pour « -exec »

  5. #5
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Hé bien... chez moi, ça marche.

    En général, pour débugguer un find, j'ajoute echo après le -exec (pour afficher la commande sans l'exécuter) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name '*.exe' -exec echo mv '{}' ../exe_folder/ ';'
    Mais ici, ça ne devrait pas aider beaucoup. Soit tu as un find exotique, soit ton shell est inhabituel. Tu pourrais donner les versions de ces outils ?

    ( au cas où : essaie avec ';' plutôt que \; )

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    merci ça marche beaucoup mieux maintenant, le problème était bien que le shell interprétait directement le point virgule et donc -exec ne comprenait pas les paramètres passés. Merci, ça fonctionne maintenant.

  7. #7
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Par curiosité, c'est quoi comme Shell ?

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

Discussions similaires

  1. Problème avec exec et strptime
    Par Figo311 dans le forum Général Python
    Réponses: 6
    Dernier message: 25/08/2011, 16h36
  2. Problème avec exec()
    Par riadh8 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 30/04/2011, 12h27
  3. Problème avec exec !
    Par kergad dans le forum Langage
    Réponses: 7
    Dernier message: 12/12/2009, 23h13
  4. Problème avec exec()
    Par heliophane dans le forum Langage
    Réponses: 2
    Dernier message: 16/09/2009, 09h32
  5. Problème avec exec()
    Par bibou dans le forum Langage
    Réponses: 4
    Dernier message: 11/07/2007, 12h13

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