本文主要是介绍Linux find 排除某个目录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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/*
这篇关于Linux find 排除某个目录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!