自动重命名文件至今 (YY-MM-DD)

自动重命名文件至今 (YY-MM-DD)

是否可以使用 raspbian 上的文件自动重命名(mp3)文件,以 YY/MM/DD 格式显示日期?

我有一个录音机(外部设备),设置为自动将 mp3 文件录制到特定文件夹并将其上传到云端。我想预先命名它们的日期,以便文件夹(通过 Grive2)包含 19-09-05.mp3 等文件,而不是 XXXX125Y2G.mp3。

我不知道如何自动重命名文件,因为我是一个 Linux 菜鸟,并且没有任何脚本知识

答案1

要重命名单个文件:

mv test.mp3 "rec-$(date -r test.mp3 '+%Y-%m-%d.mp3')"

这使用文件的时间戳将其重命名为rec-YYYY-MM-DD.mp3.可以rec-删除,但 IMO 是值得的,因为它提供了有关文件内容的更多信息不仅仅是一次约会。或者如果您愿意,可以使用其他前缀。

要重命名目录中尚未重命名的所有 .mp3 文件:

cd /path/to/directory
for f in *.mp3; do
  if [[ ! "$f" =~ ^rec-[0-9]{4}-[0-9]{2}-[0-9]{2}\.mp3$ ]] ; then
    mv "$f" "rec-$(date -r "$f" '+%Y-%m-%d.mp3')"
  fi
done

顺便说一句,您可能应该将录音软件配置为使用特定且独特的文件名模式(例如Test-nnnn.mp3),以便更轻松地避免重命名其他 .mp3 文件。 ie比.for f in Test-*.mp3更具体。for f in *.mp3或者只是将其存储在不用于其他任何用途的目录中。

答案2

我们可以使用一些有关您使用什么软件进行录制的信息,以及它们如何放置在目录中。

因此,上传似乎是自动化的,在某处还运行一个守护进程来监视该目录,然后上传其中看到的新文件。

如果所有这些都是第三方的,您可能只有机会使用首先生成 mp3 文件的软件的选项。在这种情况下,您需要查看该软件文档是否可以使用系统变量,例如日期/时间/小时/其他变量,或者由其开发人员集成在允许您确定输出文件的选项中。

否则,您可能想看看是否可以将上传该目录中所有注册文件的软件修改为仅识别遵循特定命名模式的文件。

接下来,您可以使用inotify-tools来监视目录并构建脚本来重命名传入的新文件,并使用 读取 mp3 文件元数据标签ffmpeg

我希望这有帮助。

相关内容