linux – 终端 – 删除不包含.mp3文件的所有文件夹

我在Linux上使用Banshee,我让它在文件夹层次结构中自动组织我的音乐集.当我将新相册添加到我的音乐文件夹时,Banshee会自动移动(并重命名)mp3并将它们放入正确的Artist文件夹中.如果文件夹中没有其他文件,则该文件夹也会被删除,但如果存在其他文件,则仅移动mp3并保留文件夹.因此,我的音乐文件夹中有许多文件夹,其中不包含mp3,只包含图像文件或类似的辅助文件.

我如何去除里面没有mp3文件的任何文件夹(在Music文件夹中)?

例如,假设我有以下内容:

/home/user/Music/

我添加了文件夹“Album 1(2010)”,其中包含mp3并且还包括艺术品. Banshee将拉出mp3并将它们放入合适的艺术家文件夹中,说:

/home/user/Music/Artist

但然后文件夹

/home/user/Music/Album 1 (2010)

还存在.如何检查此文件夹中是否包含mp3,如果没有,请将其删除?

我认为答案将是一个命令行,但我对任何建议持开放态度.此外,要求确认可能是件好事……以防万一.

解决方法:

根据ghostdog74的回答:

#! /bin/bash

find -depth -type d | while read -r D
 do
 v=$(find "$D" -iname '*.mp3')
 case "$v" in
 ""  )
    echo "$D no mp3"
    # rm -fr "$D" #uncomment to use
 ;;
 esac
done

我们在目录结构上测试它

.
./deleteme
./save2
./save2/x.MP3
./save-recursive
./save-recursive/nested
./save-recursive/nested/x.mp3
./save
./save/x.mp3

输出是:

./deleteme no mp3

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...