方法一:find
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f 
[root@oldboy xx]# ls
file10
 
[root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \;     
[root@oldboy xx]# ls

file10


方法二:rsync
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@oldboy xx]# rsync -az --delete --exclude "file10" /null/ /xx/
[root@oldboy xx]# ls
file10


方法三:开启bash的extglob功能(此功能的作用就是用rm !(*jpg)这样的方式来删除不包括号内文件的文件)
[root@oldboy xx]# shopt -s extglob
[root@oldboy xx]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@oldboy xx]# rm -f !(file10)
[root@oldboy xx]# ls
file10

方法四:
find ./ -type f|grep -v "\boldboy1\b"|xargs rm -f
 
方法五:
rm -f `ls|grep -v "\boldboy1\b"`


Logo

更多推荐