Как я могу рекурсивно копировать файлы по расширению?

Я хотел бы скопировать все файлы с определенным расширением, которые находятся в подкаталогах, в другую папку. Я не хочу поддерживать структуру каталогов, я просто хочу скопировать все найденные файлы в другую папку.

Я использовал эту команду, чтобы сделать это:

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

Тем не менее, я заметил, что если он сталкивается с папками или файлами с пробелами в них cp Функция не знает, что делать, и я получаю сообщение об ошибке примерно так:

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

Обратите внимание, что это один файл: ./Temporary_Items/martin/Problem Files/nav-YCA136843.aac

Но из-за пробела в "Проблемных файлах" он запутался.

1 ответ

Решение

Вы можете просто использовать -exec вариант find команда

find . -iname '*.acc' -exec cp {} <dest folder> \;
Другие вопросы по тегам