假设这个目录是/shnne/,里面有log1,log2,log3..log10 十个文件[root@shnne shnne]# touch log{1..10}
[root@shnne shnne]# ls
log1 log10 log2 log3 log4 log5 log6 log7 log8 log9
方法一:find[root@shnne shnne]# ls
log1 log10 log2 log3 log4 log5 log6 log7 log8 log9
[root@shnne shnne]# find /shnne -type f ! -name "log10"|xargs rm -f
[root@shnne shnne]# ls
log10
[root@shnne shnne]#find ./ -type f|grep -v "log10"|xargs rm -f
[root@shnne shnne]# find /shnne -type f ! -name "log10" -exec rm -f {} \;
[root@shnne shnne]# ls
log10
方法二:rsync[root@shnne shnne]# ls
log1 log10 log2 log3 log4 log5 log6 log7 log8 log9
[root@shnne shnne]# rsync -az --delete --exclude "log10" /null/ /shnne/
[root@shnne shnne]# ls
log10
方法三:开启bash的extglob功能(此功能的作用就是用rm !(*jpg)这样的方式来删除不包括号内文件的文件)[root@shnne shnne]# shopt -s extglob
[root@shnne shnne]# ls
log1 log10 log2 log3 log4 log5 log6 log7 log8 log9
[root@shnne shnne]# rm -f !(log10)
[root@shnne shnne]# ls
log10
方法四:[root@shnne shnne]#rm -f `ls|grep -v "log10"`