1

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

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

4

4 回答 4

3

假设您正在使用bashextglob已设置,您应该能够:

rm !(*.mp3)

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

ls !(*.mp3)

要检查 的值extglob

shopt extglob

并在必要时将其打开:

shopt -s extglob
于 2012-06-26T16:35:34.677 回答
2

删除所有非 mp3 文件:

find . -type f ! -name '*.mp3' -delete
于 2012-06-26T16:40:01.647 回答
0

使用 GNU 查找:

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

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

于 2012-06-26T16:37:47.057 回答
0

从 dir 递归删除所有非 mp3 文件

打印它们:

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

删除它们

find dir -type f | egrep -vi "\.mp3$" | xargs rm -f
于 2012-06-26T16:39:05.157 回答