Linux find 排除某个目录

45 篇文章 0 订阅
24 篇文章 0 订阅
find . -path ./ggpay/model -prune -o -name '*.class' -not -type d -print

我这个是排除路径中含有/ggpay/model的文件或目录

其中-prune,类似于if判断,如果-prune之前的语句为真,
比如找到ggpay/model路径的文件或目录,就不再执行后面 -o -name语句。
如果没有找到则执行后面的语句。这样就做到了排除效果。

Execute jar command exclude files

对find参数-prune的理解

以下是我写jenkins构建时,把jar包的脚本

#!/bin/bash
export PATH=~/play-1.2.7:$PATH
#获得当前目录
cur=$(pwd)
echo "pwd:"${cur}
rm -rf ggservice-dataservice.jar
output_path=${cur}/classes
model_output_path=${cur}/model_classes
ggpay=${cur}/ggpay
echo $output_path
if [ ! -d $output_path ]; then
mkdir $output_path
fi
if [ ! -d $model_output_path ]; then
mkdir $model_output_path
fi

## model要单独打jar包
echo "pwd:"${cur}

## 获取依赖库和需要编译的java文件
export libs=`find ./pay/lib -name "*.jar" |xargs|sed "s/ /:/g"`
export javafiles=`find ./pay/app/ -name "*.java" |xargs|sed "s/ / /g"`
export javautils=`find ./utils/app/ -name "*.java" |xargs|sed "s/ / /g"`
export play_lib=/opt/play-1.2.7/framework/play-1.2.7.jar
export play_lib_common=`find /opt/play-1.2.7/framework/lib/ -name "*.jar" |xargs|sed "s/ /:/g"`
echo ${javafiles}

##编译 除model文件夹
javac -d ${cur}/classes -cp ${libs}:$play_lib:$play_lib_common -encoding utf-8 ${javafiles} ${javautils}
##打包
cd $output_path
jar -cvf ${cur}/ggpay.jar `find . -path ./ggpay/model -prune -o -name '*.class' -not -type d -print`
jar -cvf ${cur}/ggpay-model.jar ggpay/model/*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

山鬼谣me

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

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

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

打赏作者

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

抵扣说明:

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

余额充值