Find -exec

Résolu
Bonjour, bonsoir,

find ${variable_de_mon_repertoire} -name '*.png' -exec cp -v "___" "${chemin_de_destination}" {} \; 


Alors voilà je veux déplacer tous les png d'un répertoire (récursivement), vers un autre.

Je pense que je ne me suis pas débrouillé avec find, mais je ne sais pas récupéré ce qui a été trouvé ;-/ (pour remplacer mon "___")

Thx ;-)



--
~ Développeur de Slowin' Killer ~

5 réponses

  1. Parce que le pipe doit se trouver en dehors de la commande "find" [...]
    

    Anh... d'accord !

    Tant qu'on y est, le "echo {} \;" est inutile, par défaut find envoie sa sortie sur la sortie standard ;-)
    

    Je ne savais pas merci Zipe, toujours au top ;-)
    0
    1. Trop fort ;-)

      Dernière chose, tu peux me dire pourquoi ça ?

      $ find "/usr/local/apache-tomcat-6.0.36/webapps/sites/img" -name '*.png' -exec echo {} | tee -a rapport \;
      
      find: Paramètre manquant pour « -exec »
      


      (désolé pour l'encodage je sors ça direct du serveur)
      0
      1. Contributeur
        Parce que le pipe doit se trouver en dehors de la commande "find" :

        find "/usr/local/apache-tomcat-6.0.36/webapps/sites/img" -name '*.png' -exec echo {} \; | tee -a rapport
        0
      2. Contributeur
        Tant qu'on y est, le "echo {} \;" est inutile, par défaut find envoie sa sortie sur la sortie standard ;-)
        0
    2. Oups pardon oui j'suis cruche...

      Marche pas les variables avec Find ?

      Pourquoi /chemin/destination et pas "/chemin/destination" ?

      Thx
      0
      1. Contributeur
        Si ;-))

        Source="/chemin"
        Destination="/chemin/destination"
        
        find "${Source}" -type f -name "*.png" -exec cp -v {} "${Destination}" \;
        0
    3. Re,

      pourquoi échappes-tu cela ? :

      /chemin/destination
      

      0
      1. Contributeur
        Je n'échappe rien du tout, le "/" sous GNU/Linux est le délimiteur par défaut pour les chemins, au contraire de Windows où c'est "\chemin\rep\"
        0
    4. Contributeur
      Salut,

      Normalement la commande c'est :

      find /chemin -type f -name "*.png" -exec cp -v {} /chemin/destination \;

      1