Como posso recursivamente copiar arquivos por extensão de arquivo?

3

Eu gostaria de copiar todos os arquivos com uma certa extensão que estão em sub-diretórios para uma pasta diferente. Eu não quero manter a estrutura de diretórios, eu só quero copiar todos os arquivos encontrados para uma pasta diferente.

Eu usei este comando para fazer isso:

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

No entanto, notei que, se ele for executado em pastas ou arquivos com espaços, a função cp não saberá o que fazer e um erro será exibido assim:

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

Observe que seu único arquivo: ./Temporary_Items/martin/Problem Files/nav-YCA136843.aac

Mas devido ao espaço em "Arquivos de problemas", isso é confuso.

    
por lunchboy 29.10.2015 / 17:15

1 resposta

6

Você pode simplesmente usar a opção -exec do comando find

find . -iname '*.acc' -exec cp {} <dest folder> \;
    
por M.Fooladgar 29.10.2015 / 17:23