想象一下,您有一些目录包含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
- 制作脚本吗?
感谢您的帮助! :)
答案 0 :(得分:7)
这应该照顾你的整个事情(不需要脚本)。
find . -name '*.mp3' -execdir bash -c 'file="{}"; printf "%s\n" "${file##*/}" >> "${PWD##*/}.m3u"' \;