如何删除不是mp3的文件?

时间:2012-06-26 16:33:57

标签: regex linux ubuntu rm

我有一个mp3播放器。我把它连接到我的PC,它有Ubuntu作为操作系统。 我想删除所有不是.mp3的文件。

我知道删除它们的命令是rm * .mp3,但是否定这个的组合是什么? 我试过了:rm ^ .mp3,^ mp3 ^ [mp3],但他们没有工作!有什么建议吗?

4 个答案:

答案 0 :(得分:4)

假设您使用bash并设置了extglob,您应该能够:

rm !(*.mp3)

在盲目运行该命令之前,我会尝试使用ls进行测试:

ls !(*.mp3)

检查extglob

的值
shopt extglob

如有必要,请将其打开:

shopt -s extglob

答案 1 :(得分:3)

删除所有非mp3文件:

find . -type f ! -name '*.mp3' -delete

答案 2 :(得分:1)

使用GNU find:

find FOLDER -not -iname '*.mp3' -not -type d -delete

哪个将从FOLDER开始,并递归遍历子文件夹,删除任何不以mp3结尾的文件(不区分大小写),只要此文件不是目录。

答案 3 :(得分:1)

从dir

递归删除所有非mp3文件

打印它们:

find dir -type f | egrep -vi "\.mp3$"

删除它们

find dir -type f | egrep -vi "\.mp3$" | xargs rm -f