rm排除某个文件进行删除

前言

extglob模式开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便. 不然不识别!

方法1:

开启命令:
shopt -s extglob
 
关闭命令:
shopt -u extglob
 
5个模式匹配操作符
1. ?(pattern-list) - 所给模式匹配0次或1次;
2.*(pattern-list) - 所给模式匹配0次以上包括0次;
3.+(pattern-list) - 所给模式匹配1次以上包括1次;
4.@(pattern-list) - 所给模式仅仅匹配1次;
5.!(pattern-list) - 不匹配括号内的所给模式。

案例

反选删除文件:
(打开extglob模式)
shopt -s extglob     
rm -fr !(file1)
 
多个要排除的:
rm -rf !(file1|file2)  

 

方法2:

删除当前目录下所有 *.txt文件,除了test.txt

rm `ls *.txt|egrep -v test.txt`
#或者
rm `ls *.txt|awk '{if($0 != "test.txt") print $0}'`
#排除多个文件
rm `ls *.txt|egrep -v '(test.txt|fff.txt|ppp.txt)'`
rm -f `ls *.log.1|egrep -v '(access-2010-09-06.log|error-2010-09-06.log)'`
rm -f `ls *.log|egrep -v '(access-2010-09-06.log|error-2010-09-06.log)'`
rm -f `ls *.log|egrep -v '(20100906.log)'`

注意:上面所用的符号是‘`’,而不是单引号

rm -rf `ls  |egrep -v bb` 删除所有,保留bb 目录

 

转载于:https://blog.51cto.com/14055961/2386129

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值