将目录和子目录中的特定文件复制到 mac 中的目标文件夹中

Copy specific files from a directory and subdirectories into a target folder in mac

我有一个目录结构,其中我有一些特定文件(比如 mp3 文件)直接组织或在子目录(最多 n 级)中组织。 例如:

现在,我需要的是将所有文件夹和子文件夹中的所有文件(.mp3 文件)复制到另一个目标文件夹中。所以我的目标文件夹是这样的:

我尝试了以下问题的答案: Recursive copy of specific files in Unix/Linux?

Copy all files with a certain extension from all subdirectories,但复制了相同的目录(和子目录)结构。

有什么帮助或建议吗?

cd "Music Folder"
find . -name "*.mp3" -exec cp {} /path/to/targetFolder \;

使用java代码,我实现如下:

Path start = Paths.get("/Users/karan.verma/Music/iTunes/iTunes Media/Music");
        int maxDepth = 15;
        try(Stream<Path> stream = Files.find(start, 
                    maxDepth, 
                    (path, attr) -> String.valueOf(path).endsWith(".mp3"))){

            List<Path> fileName = stream
                    .sorted()
                    .filter(path -> String.valueOf(path).endsWith(".mp3"))
                    .collect(Collectors.toList());

            for(Path p : fileName) {
                Path path = Paths.get("/Users/karan.verma/Desktop/TestCopy/"+p.getFileName());
                Files.copy(p, path,StandardCopyOption.REPLACE_EXISTING);
            }
        }catch(Exception e){
            e.printStackTrace();
        }