方法一: 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

更多推荐