Find -exec

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
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 ;-)


A voir également:

5 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Normalement la commande c'est :

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

1
Utilisateur anonyme
 
Re,

pourquoi échappes-tu cela ? :

/chemin/destination

0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
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
 
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   Statut Contributeur Dernière intervention   6 431
 
Si ;-))

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

find "${Source}" -type f -name "*.png" -exec cp -v {} "${Destination}" \;
0
Utilisateur anonyme
 
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   Statut Contributeur Dernière intervention   6 431
 
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   Statut Contributeur Dernière intervention   6 431
 
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
 
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