我有一个目录结构,其中我有一些特定的文件(比如mp3文件)直接组织或在子目录(最多n级)。 例如:
现在,我需要的是将所有文件夹(.mp3文件)从所有文件夹和子文件夹复制到另一个目标文件夹。所以我的目标文件夹就像这样:
我尝试了以下问题的答案: Recursive copy of specific files in Unix/Linux?
和Copy all files with a certain extension from all subdirectories,但被复制了相同的目录(和子目录)结构。
任何帮助或建议?
答案 0 :(得分:1)
cd "Music Folder"
find . -name "*.mp3" -exec cp {} /path/to/targetFolder \;
答案 1 :(得分:0)
使用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();
}