web-dev-qa-db-fra.com

Comment puis-je copier récursivement des fichiers par extension?

Je voudrais copier tous les fichiers avec une certaine extension qui se trouvent dans des sous-répertoires dans un autre dossier. Je ne veux pas maintenir la structure de répertoire, je veux juste copier tous les fichiers trouvés dans un autre dossier.

J'ai utilisé cette commande pour le faire:

cp `find . -name "*.aac"` /media/moasad/New\ Volume/Media\ files/Avengers/Aud/aac/

Cependant, j'ai remarqué que si elle se trouve dans des dossiers ou des fichiers contenant des espaces, la fonction cp ne sait pas quoi faire et j'obtiens une erreur qui ressemble à ceci:

cp: cannot stat ‘./Temporary_Items/martin/Problem’: No such file or directory
cp: cannot stat ‘Files/nav-YCA136843.aac’: No such file or directory

Notez que son seul fichier: ./Temporary_Items/martin/Problem Files/nav-YCA136843.aac

Mais à cause de l'espace dans "Problem Files", c'est confus.

3
lunchboy

Vous pouvez simplement utiliser l’option -exec de la commande find

find . -iname '*.acc' -exec cp {} <dest folder> \;
6
M.Fooladgar