批量递归移动扩展名的文件到以该扩展名命名的文件夹

batch recursive move files of extension to folder named with that extension

我有 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。寻找脚本文件或命令行解决方案

这里有一种方法:

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

希望对你有用。

您好!

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

-execdir 在当前文件的目录下运行指定的命令。这使您可以使用相对于当前 artist/album.

mp3/flac/ 目录

将当前目录更改为您的音乐文件所在的目录,然后将 mp3 移动到 mp3 文件夹,将 flac 移动到 flac 文件夹。

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