shell 反向删除文件,即除指定文件外删除其他所有文件

        项目需要用脚本shell给资源打包加密,项目是各种地方棋牌,打包加密时每个地方资源key值和sign值不同,但所有的资源都放到一起了,所以加密后需要删除那些不用的资源,使包体尽可能的小。我对shell和linux命令不是很熟,通过在网上查询,找到了以下三个比较可用的方法(还有其他的方法,我没有测试过就不列出了)。

xargs:x:transmit 传递, args: 多个参数 向命令传递多个参数, 循环遍历处理

1、

ls | grep -v fileName | xargs rm -rf {}

注:这种方式只能删除不带有fileName值的文件,如果带有则不能删除(好像可以通过什么符号可以筛选出除指定文件以外的所有文件,未查证),‘{}’可以省略,不清楚它的实际意义是什么。

2、

find ./ | grep -v fileName | xargs rm -rf {}

‘./’表示在当前目录下,

3、#打开extglob模式 extglob正则的意思

#关闭extglob模式

shopt -s extglob
rm -rf !(filename)
shopt -u extglob

注:这种方式可以准确删除指定问件以外的所有文件

以上三种能满足的我需求

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值