,shell 命令,怎么删除当前目录中不包含某字符串的文件

求助,shell 命令,如何删除当前目录中不包含某字符串的文件
文件夹里有好多c语言的可执行文件 和c源程序放在一起, 现在想一次删除所有的可执行文件,只留下c源文件,用什么命令,或者加什么参数???

------解决方案--------------------
rm和grep结合使用?
------解决方案--------------------
find <srcPath> -name *.c |xargs cp <dstpath>
rm -rf <srcPath>
------解决方案--------------------
新建一个文件夹bak,用命令mv *.c *.h ./bak (就是把当前目录下的所有.c .h文件移到bak目录下),然后rm * (删除当前目录下所以文件,,文件夹不会被删除),在mv bak/* ./ (把那些备份起来的C文件恢复到原目录) rm bak -r (删除bak目录)
很详细吧!呵呵,
应该还有更简单的办法,就是用通配符[!.],但是现在还没想到怎么用