项目需要用脚本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
注:这种方式可以准确删除指定问件以外的所有文件
以上三种能满足的我需求