2

想象一下,您有一些包含mp3文件和子目录的目录,也包含mp3文件,例如:

/music/band1/
/music/band2/
/music/band2/dir1/
/music/band2/dir2/
/music/band3/dir1/
/music/band3/dir2/
/music/band4/
...

我想.m3u在每个包含文件的目录中创建一个mp3文件 - 例如:

/music/band1/band1.m3u
/music/band2/band2.m3u
/music/band2/dir1/dir1.m3u
/music/band2/dir2/dir2.m3u
/music/band3/dir1/dir1.m3u
/music/band3/dir2/dir2.m3u
/music/band4/band4.m3u

文件的名称.m3u将是在其中.m3u创建的目录名称。(这只是一个示例目录结构。)

我希望很清楚:)

到目前为止,我有这个m3u从文件生成文件*.mp3,但只在实际目录中,并按目录命名。

#!/bin/bash\
ls | grep -i mp3 > filelist.txt
mv filelist.txt filelist.m3u
FOLDERNAME=${PWD##*/}
echo $FOLDERNAME
mv filelist.m3u $FOLDERNAME.m3u

应该添加什么让它递归地查看 的每个子目录/music,如果有另一个子子目录,也看那里?那么,m3u在各个子目录下执行制作脚本呢?

谢谢您的帮助!:)

4

1 回答 1

7

这应该为您处理所有事情(不需要脚本)。

find . -name '*.mp3' -execdir bash -c 'file="{}"; printf "%s\n" "${file##*/}" >> "${PWD##*/}.m3u"' \;
于 2012-06-30T21:32:17.457 回答