Find -exec

Résolu/Fermé
Utilisateur anonyme - 6 févr. 2013 à 18:32
 Utilisateur anonyme - 6 févr. 2013 à 19:27
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 ;-)


5 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
6 févr. 2013 à 18:53
Salut,

Normalement la commande c'est :

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

1
Utilisateur anonyme
6 févr. 2013 à 19:09
Re,

pourquoi échappes-tu cela ? :

/chemin/destination

0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
6 févr. 2013 à 19:12
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
Utilisateur anonyme
6 févr. 2013 à 19:14
Oups pardon oui j'suis cruche...

Marche pas les variables avec Find ?

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

Thx
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
6 févr. 2013 à 19:17
Si ;-))

Source="/chemin"
Destination="/chemin/destination"

find "${Source}" -type f -name "*.png" -exec cp -v {} "${Destination}" \;
0
Utilisateur anonyme
6 févr. 2013 à 19:21
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
6 févr. 2013 à 19:24
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
6 févr. 2013 à 19:25
Tant qu'on y est, le "echo {} \;" est inutile, par défaut find envoie sa sortie sur la sortie standard ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
6 févr. 2013 à 19:27
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