如何按文件扩展名递归复制文件?

如何按文件扩展名递归复制文件?

我想将子目录中具有特定扩展名的所有文件复制到另一个文件夹。我不想保留目录结构,我只想将找到的所有文件复制到另一个文件夹。

我使用这个命令来执行此操作:

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> \;

相关内容