• ziputil


    #!/bin/bash
    
    current=$(cd $(dirname $0); pwd -P)
    
    function zip_()
    {
        echo abc
    }
    
    function unzip_()
    {
        echo abc
    }
    
    function unzip_all()
    {
        local file_path=$1 
        echo ${file_path}
        if [ -z "${first_zip}" ];then
            first_zip=${file_path}
        fi
        local tmp_zip="${file_path}.tmp"
        mv ${file_path} ${tmp_zip}
        unzip ${tmp_zip} ${var} -d ${file_path} &>/dev/null
        local read_content="${file_path}.content"
        find ${file_path} -name "*.zip" -type f > ${read_content}
        while read zip_file
        do
            unzip_all ${zip_file}
        done < ${read_content}
        rm -rf ${read_content}
        
        if [ "X${file_path}" == "X${first_zip}" ];then
            mv ${first_zip} ${first_zip%.zip}
            mv ${tmp_zip} ${first_zip}
        else
            rm -rf ${tmp_zip}
        fi
    }
    
    function show_zip()
    {
        local file_path=$1 
        if [ -z "${first_zip}" ];then
            first_zip=${file_path}
        fi
        local zip_content=$(less ${file_path} | cat | awk '{print $NF}')
        local start_end=$(echo "${zip_content}" | grep -n "\---" | awk -F":" '{print $1}')
        local start=$(echo ${start_end} | awk '{print $1}'); let start++
        local end=$(echo ${start_end} | awk '{print $2}'); let end--
        local zip_content=$(echo "${zip_content}" | sed -n "${start},${end}p" | grep -v "/$")
        local read_content="${file_path}.content"
        echo "${zip_content}" > ${read_content}
        while read line
        do
            echo ${line} | grep -q "\.zip$"
            [ $? -ne 0 ] && echo ${file_path}/${line} && continue
            local tmp_zip="${file_path}.tmp"
            mv ${file_path} ${tmp_zip}
            unzip ${tmp_zip} ${line} -d ${file_path} &>/dev/null
            show_zip ${file_path}/${line}
            rm -rf ${file_path}
            if [ "X${file_path}" == "X${first_zip}" ];then
                cp -rpf ${tmp_zip} ${first_zip}
            fi
            rm -rf ${tmp_zip}
        done < ${read_content}
        rm -rf ${read_content}
    }
    
    function main()
    {
        show_zip $@
    }
    
    main $@
  • 相关阅读:
    x01.JavaHello
    x01.Weiqi.1 提子算法
    x01.Weiqi.3 网络对弈
    Cryptography
    Javascript判断中文字节
    asp.net mvc,asp.net4.0空间出售
    Sql Server中判断日志是否为一个星期
    DIV+CSS实现二级导航菜单
    ExecutorService线程池 [转]
    Android程序开发所用app图标的几种大小
  • 原文地址:https://www.cnblogs.com/zhangzongjian/p/16057459.html
Copyright © 2020-2023  润新知