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

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

Я использовал эту команду для этого:

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

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

3
задан 29 October 2015 в 19:24

1 ответ

Можно просто использовать -exec опция find команда

find . -iname '*.acc' -exec cp {} <dest folder> \;
6
ответ дан 1 December 2019 в 15:24

Другие вопросы по тегам:

Похожие вопросы: