2017-08-17 48 views
0

我有MP3和FLAC类型的文件。比方说,我的基本目录结构批处理递归移动扩展名到该扩展名文件夹的文件

/music/artist/album 

我已经(已经)用递归批量操作进行

/music/artist/album/flac/ 
/music/artist/album/mp3/ 

我要遍历所有的/music/并执行以下操作:

  1. 如果/music/artist/album/具有MP3音乐,将它们移到/music/artist/album/mp3/
  2. 如果/music/artist/album/有flacs,请将它们移动到/music/artist/album/flac/

某些文件夹有mp3和flac。寻找任何脚本文件或命令行的解决方案

+0

这是什么操作系统?标签bash和批处理文件不同 –

+0

对不起,对于标签上的错误。文件位于外部硬盘驱动器上,我打算在Ubuntu –

+0

中执行操作。我收到了我需要的解决方案。再次感谢大家的帮助和建议。我已经学到了很多东西!最好的祝福! –

回答

3
find /music/ -name '*.mp3' -execdir mv {} mp3/ \; 
find /music/ -name '*.flac' -execdir mv {} flac/ \; 

-execdir在当前文件的目录中运行指定的命令。这使您可以使用相对于当前艺术家/专辑的mp3/flac/目录。

0

在这里,你必须做这件事:

find /music -type f -name "*.mp3" | xargs mv $1 /music/artist/album/mp3/ 
find /music -type f -name "*.flac" | xargs mv $1 /music/artist/album/flac/ 

希望它为你工作。

问候!

+0

感谢您的回复。不幸的是,也许我的原始评论不够清楚。 “艺术家”和“专辑”实际上是数以千计的子文件夹 - 比如滚石乐队,贝多芬等等,所以我不认为按照你提供的方式来做这件事是行不通的,除非我以变量的形式通过它们。 –

0

将当前目录更改为音乐文件的位置,然后将mp3移至mp3文件夹并将其闪烁至flac文件夹。

cd /music/artist/album/ 
mv *.mp3 mp3/ 
mv *.flac flac/ 
+0

感谢您的评论,但我知道如何做到这一点,它需要超过1000次迭代才能手动完成。这就是为什么我要求递归批处理命令在/ music / –