linux 删除指定文件以外的文件

使用find 排除 

找到./tools/dbsetup/startlibs/config/suconfig/ 下除了以下文件名的文件

find ./tools/dbsetup/startlibs/config/suconfig/ ! -name 'su_aa.json' 
! -name 'su_aip.json' 
! -name 'su_bc.json'  
! -name 'su_design.json'  
! -name 'su_df.json' 
! -name 'su_df_view.json'   
! -name 'su_gl.json'  
! -name 'su_sys.json' 

2 加-exec调用删除

find ./tools/dbsetup/startlibs/config/suconfig/ ! -name 'su_aa.json' 
! -name 'su_aip.json' 
! -name 'su_bc.json'  
! -name 'su_design.json'  
! -name 'su_df.json' 
! -name 'su_df_view.json'   
! -name 'su_gl.json'  
! -name 'su_sys.json' -exec rm -f {} +

{} 标识find命令找到的文件

结束符有两种   ; 和 +

;会对每个找到item执行command

+ 会执行一次

-exec rm -f {} +   执行 rm -f 1 2 3 等同于
-exec rm -f {} ; 执行 rm -f 1 rm -f 2 rm -f 3
的作用是防止截断

 3 目录中查找记得排除 .和当前查找的目录

find ./jstack/apps -maxdepth 1 -typd d ! -name '.' ! -name 'apps'
原文地址:https://www.cnblogs.com/wolbo/p/12448024.html