我有一个 mp3 播放器。我已将它连接到以 Ubuntu 作为操作系统的 PC。我想删除所有不是.mp3 的文件。
我知道删除它们的命令是 rm *.mp3,但是否定它的组合是什么?我试过:rm ^.mp3, ^mp3 ^[mp3],但它们没有用!有什么建议吗?
假设您正在使用bash
并extglob
已设置,您应该能够:
rm !(*.mp3)
ls
在盲目运行该命令之前,我会尝试进行测试:
ls !(*.mp3)
要检查 的值extglob
:
shopt extglob
并在必要时将其打开:
shopt -s extglob
删除所有非 mp3 文件:
find . -type f ! -name '*.mp3' -delete
使用 GNU 查找:
find FOLDER -not -iname '*.mp3' -not -type d -delete
它将从 FOLDER 开始,并递归地遍历子文件夹,删除任何不以 mp3 结尾的文件(不区分大小写),只要该文件不是目录。
从 dir 递归删除所有非 mp3 文件
打印它们:
find dir -type f | egrep -vi "\.mp3$"
删除它们
find dir -type f | egrep -vi "\.mp3$" | xargs rm -f