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 "=-=-=-=-=-=-=-=-=-=-"