Rechercher un dossier par nom puis copier des fichiers

Je dois trouver des sous-répertoires appelés “child” et copier les fichiers de ces dossiers dans un nouveau répertoire. Impossible de le faire fonctionner.

Je peux aller jusqu’à trouver les sous-répertoires, mais je ne peux pas copier les fichiers à partir d’eux.

> find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child 

Ce qui précède trouvera tous les sous-répertoires dans 03_2016 nommés “child” mais comment puis-je maintenant copier les fichiers dans ces répertoires?

J’ai essayé ceci mais le problème est qu’il semble vouloir copier les répertoires eux-mêmes et pas seulement les fichiers:

 > find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child | xargs cp '{}' /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST \; 

Je ne peux pas l’obtenir pour ne cibler que les fichiers.

Cela pourrait être un peu plus propre que la réponse ci-dessus:

 find $(find /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/2016/03_2016 -type d -iname child | xargs) -type f -exec cp {} /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST \; 

Deux appels à trouver, un appel à xargs. Comme l’autre réponse, cela écrasera également les noms de fichiers en double.

Tu es proche:

 > find $YOUR_PATH/03_2016/ -type d -iname child | xargs -I {} find -type f {} | xargs -I {} cp {} /Volumes/COMMON-LIC-PHOTO-1/STUDIO-COMPLETE/ISSUETRAK/TEST 

Remarque: vous pouvez remplacer les fichiers qui partagent le même nom à la destination finale