1. 程式人生 > >Linux find 排除某個目錄

Linux find 排除某個目錄

find . -path ./ggpay/model -prune -o -name '*.class' -not -type d -print

我這個是排除路徑中含有/ggpay/model的檔案或目錄

其中-prune,類似於if判斷,如果-prune之前的語句為真,
比如找到ggpay/model路徑的檔案或目錄,就不再執行後面 -o -name語句。
如果沒有找到則執行後面的語句。這樣就做到了排除效果。

以下是我寫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/*