shell命令:给当前目录里一个文件压缩一份不包含.svn文件的zip包

 1 filepath=$(cd "$(dirname "$0")"; pwd) 
 2 packagePath="$filepath"/package
 3 zipPath="$filepath"/package.zip
 4 
 5 
 6 if [ -d "$packagePath" ]; then
 7 # 1 删除旧zip包
 8 rm -fr "$zipPath" 
 9 # 2 把package重命名为packageBase
10 mv "$packagePath" "$packagePath"Base
11 # 3 复制一份packageBase并命名为package
12 cp -rf "$packagePath"Base "$packagePath"
13 # 4 删除零时文件里的svn文件
14 cd "$packagePath"
15 find . -type d -name ".svn" |xargs rm -rvf;
16 # 5 给零时文件打包并命名为package.zip
17 cd "$filepath"
18 zip -r package.zip package 
19 # 6 删除零时文件
20 rm -fr "$packagePath"
21 # 7 把packageBase的名字再还原为位package
22 mv "$packagePath"Base "$packagePath"
23 
24     echo "=-=-=-=-=-=-=-=-=-=-"
25     echo "打包成功"
26 else
27     echo "=-=-=-=-=-=-=-=-=-=-"
28     echo "打包失败,package目录不存在!!!"
29 fi
30 echo "=-=-=-=-=-=-=-=-=-=-"

后来写出的更靠谱的方法:复制到上级目录下打包再移动到本级目录,这样不用对package本身造成影响,避免svn文件删除导致问题以及webstorm项目必须reload的问题:

filepath=$(cd "$(dirname "$0")"; pwd)
packagePath="$filepath"/package
zipPath="$filepath"/package.zip


if [ -d "$packagePath" ]; then
# 1 删除旧zip包
rm -fr "$zipPath"
# 2 复制一份package到上层
cd "$filepath"
cp -rf "$filepath"/package ../package
# 3 删除零时文件里的svn和idea文件
cd ../package
find . -type d -name ".svn" |xargs rm -rvf;
find . -type d -name ".idea" |xargs rm -rvf;
# 4 给零时文件打包并命名为package.zip
cd ../
zip -r package.zip package
# 5 复制zip包到sharpteacher里去
cp -rf package.zip "$filepath"
# 6 删除零时文件和零食zip
rm -fr package
rm -fr package.zip
 
    echo "=-=-=-=-=-=-=-=-=-=-"
    echo "打包成功"
else
    echo "=-=-=-=-=-=-=-=-=-=-"
    echo "打包失败,package目录不存在!!!"
fi
     echo "=-=-=-=-=-=-=-=-=-=-"
原文地址:https://www.cnblogs.com/JD85/p/3396378.html