我有一个mp3播放器。我把它连接到我的PC,它有Ubuntu作为操作系统。 我想删除所有不是.mp3的文件。
我知道删除它们的命令是rm * .mp3,但是否定这个的组合是什么? 我试过了:rm ^ .mp3,^ mp3 ^ [mp3],但他们没有工作!有什么建议吗?
答案 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