Linux拆包+合包脚本

此脚本可以针对Linux环境下 ziptar.gztar.bz2 压缩包进行分包+后续的合包

cat split.sh

#!/bin/bash
# 拆分包大小
Size=500M

FileName=$(ls -l ${1} |awk -F / '{print $NF}'|awk -F .tar.* '{print $1}'|awk -F .zip '{print $1}'|awk '{print $NF}')
Path=$(pwd)/split/${FileName}$(date +%F-%S)
Suffix=$(ls -l ${1}|awk -F / '{print $NF}'|awk '{print $NF}'|awk -F . '{print $NF}')

# 分包函数
splits(){
mkdir  ${Path} -p
split -b ${Size} -d -a 5 ${1} ${1}. && \
	mv ${1}.* ${Path}
}

# 合包函数
merge(){
if [[ ${Suffix} == "gz" ]];then
	echo "cat ${FileName}.tar.* > ${FileName}.tar.${Suffix}" > ${Path}/${FileName}.sh
	echo "rm -f ${FileName}.tar.${Suffix}.*" >> ${Path}/${FileName}.sh && \
		echo "rm -f ${FileName}.sh">> ${Path}/${FileName}.sh && \
		chmod +x ${Path}/${FileName}.sh

elif [[ ${Suffix} == "bz2" ]];then
	echo "cat ${FileName}.tar.* > ${FileName}.tar.${Suffix}" > ${Path}/${FileName}.sh
	echo "rm -f ${FileName}.tar.${Suffix}.*" >> ${Path}/${FileName}.sh && \
                echo "rm -f ${FileName}.sh">> ${Path}/${FileName}.sh && \
                chmod +x ${Path}/${FileName}.sh

elif [[ ${Suffix} == "zip" ]];then
        echo "cat ${FileName}.zip* > ${FileName}.${Suffix}" > ${Path}/${FileName}.sh
	echo "rm -f ${FileName}.zip.*" >> ${Path}/${FileName}.sh && \
                echo "rm -f ${FileName}.sh">> ${Path}/${FileName}.sh && \
                chmod +x ${Path}/${FileName}.sh
fi
}
splits ${1}
merge

执行后会在脚本所在当前路径生成 split 目录 咱们的分包后的数据会安装规定大小存放在 split目录 如下图:

以 上面分包后的数据进行合包 举例:
进入分包后数据所在目录后 会有一个可执行脚本,执行这个脚本 进行合包 如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的海马体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值