Bash: 创建不同格式和文件夹的音乐文件副本
Bash: Create copy of music files in different format and folder
我正在尝试创建一个 bash scipt 来简单地自动查找我的 flac 文件并在单独的文件夹中创建它们的 alac 副本。这样我就有了我的小 iTunes 文件夹。想自动化因为太多了。
所以我在我的 Eminem 文件夹中找到了我的 flac 文件夹....
:~$ find /mnt/music/Eminem -type d -name *FLAC
/mnt/music/Eminem/2009 Relapse FLAC
/mnt/music/Eminem/1996 Infinite FLAC
/mnt/music/Eminem/1999 The Slim Shady LP FLAC
/mnt/music/Eminem/2000 Marshall Mathers LP FLAC
现在不用进入每个文件夹并使用类似
的方法手动转换
ffmpeg -i track.flac -acodec alac track.m4a...
我如何在 bash 脚本中获取这些多个文件夹。使用 FFMpeg 创建 /mnt/music/iTunes 中内容的 ALAC 副本?
新文件夹将...
/mnt/music/iTunes/Eminem/2009 Relapse ALAC/track.m4a
在相同的文件夹结构中,所有 flac 文件夹都以 FLAC 结尾。
/mnt/music/Artist/Year Album FLAC
我了解大部分定位、复制、转换、手动终端命令的内容,但是当涉及到将其放入 bash 脚本时。我不明白我是如何获取每个命令的输出并将其用于另一个命令的。例如文件夹列表。不知道如何自动执行每个步骤的所有步骤。
有点啰嗦,但如有任何帮助,我们将不胜感激。甚至一些你推荐学习的视频。
您正在寻找这样的东西:
#!/bin/sh -
cd /mnt/music
for flac in */*FLAC/*.flac; do
alacdir=iTunes/${flac%FLAC/*}ALAC
alac=${flac##*/} alac=$alacdir/${alac%.flac}.m4a
echo mkdir -p "$alacdir" &&
echo ffmpeg -i "$flac" -acodec alac "$alac"
done
如果您对输出感到满意,请删除 echo
s。如果我遗漏了什么,请发表评论。
我正在尝试创建一个 bash scipt 来简单地自动查找我的 flac 文件并在单独的文件夹中创建它们的 alac 副本。这样我就有了我的小 iTunes 文件夹。想自动化因为太多了。
所以我在我的 Eminem 文件夹中找到了我的 flac 文件夹....
:~$ find /mnt/music/Eminem -type d -name *FLAC
/mnt/music/Eminem/2009 Relapse FLAC
/mnt/music/Eminem/1996 Infinite FLAC
/mnt/music/Eminem/1999 The Slim Shady LP FLAC
/mnt/music/Eminem/2000 Marshall Mathers LP FLAC
现在不用进入每个文件夹并使用类似
的方法手动转换 ffmpeg -i track.flac -acodec alac track.m4a...
我如何在 bash 脚本中获取这些多个文件夹。使用 FFMpeg 创建 /mnt/music/iTunes 中内容的 ALAC 副本?
新文件夹将...
/mnt/music/iTunes/Eminem/2009 Relapse ALAC/track.m4a
在相同的文件夹结构中,所有 flac 文件夹都以 FLAC 结尾。
/mnt/music/Artist/Year Album FLAC
我了解大部分定位、复制、转换、手动终端命令的内容,但是当涉及到将其放入 bash 脚本时。我不明白我是如何获取每个命令的输出并将其用于另一个命令的。例如文件夹列表。不知道如何自动执行每个步骤的所有步骤。
有点啰嗦,但如有任何帮助,我们将不胜感激。甚至一些你推荐学习的视频。
您正在寻找这样的东西:
#!/bin/sh -
cd /mnt/music
for flac in */*FLAC/*.flac; do
alacdir=iTunes/${flac%FLAC/*}ALAC
alac=${flac##*/} alac=$alacdir/${alac%.flac}.m4a
echo mkdir -p "$alacdir" &&
echo ffmpeg -i "$flac" -acodec alac "$alac"
done
如果您对输出感到满意,请删除 echo
s。如果我遗漏了什么,请发表评论。