Как я могу рекурсивно копировать файлы по расширению?
Я хотел бы скопировать все файлы с определенным расширением, которые находятся в подкаталогах, в другую папку. Я не хочу поддерживать структуру каталогов, я просто хочу скопировать все найденные файлы в другую папку.
Я использовал эту команду, чтобы сделать это:
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> \;