代码之家  ›  专栏  ›  技术社区  ›  KayV

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

  •  0
  • KayV  · 技术社区  · 7 年前

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

    • 音乐文件夹
      • a、 mp3
      • 文件夹2
      • 文件夹3
      • b、 mp3
      • c、 mp3
      • 文件夹4
      • d、 mp3
      • 文件夹5
      • 文件夹6
        • 文件夹7
        • 文件夹8
          • e、 mp3

    现在,我需要的是将所有文件夹和子文件夹中的所有文件(.mp3文件)复制到另一个目标文件夹中。因此,我的目标文件夹如下所示:

    • targetFolder目标文件夹
      • a、 mp3
      • b、 mp3
      • c、 mp3
      • d、 mp3
      • e、 mp3

    我试着回答以下问题: Recursive copy of specific files in Unix/Linux?

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

    有什么帮助或建议吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   CSJ    7 年前
    cd "Music Folder"
    find . -name "*.mp3" -exec cp {} /path/to/targetFolder \;
    
        2
  •  0
  •   KayV    7 年前

    使用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();
            }