根据文件夹名称更改文件夹结构(音乐收藏)(因为 Foobar2000 坏了)

根据文件夹名称更改文件夹结构(音乐收藏)(因为 Foobar2000 坏了)

亲爱的超级用户社区,首先我要说的是,我的编程经验很少,所以如果我的问题看起来有点奇怪,我提前道歉。

最近我尝试重新组织我的音乐收藏文件夹。以前,所有专辑都收集在一个专用文件夹中,因此收藏的基本文件夹包含以下名称的文件夹:

BASE\'<Artist> - [<year>] <album title>'

我想改变集合的结构,以便文件可以按照“规则”存储在文件夹中

BASE\'<Artist>'\'[<year>] <album title>'

Foobar2000 成功地为大多数专辑创建了这些新文件夹,并将 mp3 移到那里。然而,不幸的是,程序在过程中崩溃了,旧文件夹仍然存在。这些旧文件夹仍然包含封面图片等。我现在每个专辑剩下两个文件夹:包含所有 mp3 的艺术家专辑子文件夹,以及包含封面图片的原始文件夹。

如果它没有崩溃,Foobar2000 就会移动全部内容添加到新的子文件夹中,并删除原始文件夹。我现在想知道我是否可以使用类似 shell 脚本(我一生中从未使用过)来完成这项工作?

我猜想脚本必须遍历所有文件BASE

  1. 测试文件夹名称是否具有结构'<Artist> - [<year>] <album title>'- 例如,测试它是否包含中间部分' - '
  2. 测试文件夹是否'<Artist>'\'[<year>] <album title>'存在,如果存在,则将所有剩余内容移动到该文件夹
  3. 删除原始文件夹'<Artist> - [<year>] <album title>'

这是 shell 脚本可以实现的吗?任何帮助或提示都将不胜感激。

答案1

是的,这正是使用 shell 脚本可以完成的事情。在准确确定算法需要做什么方面,您已经完成了 90% 的工作。让我填补一些空白。

赛格威将为您提供一个 bash 脚本环境。这个答案建议如何在 bash 中迭代事物列表。grep将测试文件夹名称的结构并提取感兴趣的部分(例如艺术家姓名)。建立目录将创建目录(您可能需要研究该-p选项)并删除目录将会删除它们。动量实际上会将文件从一个目录移动到另一个目录。

相关内容