按月压缩文件

按月压缩文件

#下面这行代码并不是注释,它的作用是表名该脚本使用哪个shell解释器
#! /bin/sh

#变量赋值,等号=两边不能有空格
#需要处理的文件目录
from=$1
#zip包存放目录
to=$2

#判断符号、运算符号等,左右两边的变量或值,与符号之间都需有空格
#判断源文件目录是否为空
if test ! -d $from
then
        mkdir -p $from
fi


#path dir to

if test ! -d $to
then
        mkdir -p $to
fi

#查询源文件路径下文件
fileList=(`find $from -maxdepth 1 -type f -name '*.jpeg'`)
declare -A myMap
len=${#fileList[@]}
echo "len:$len"
if test $len -gt 0
then
	mkdir -p $to/${start}

	#for filename in $fileList如此使用不规范,出现只遍历第一个值的错误情况
	for filename in ${fileList[@]}
	do
		tt=`stat -c %y $filename| awk '{print $1}'`
		tt=`date -d $tt +%Y%m`
		echo "tt:$tt"
		myMap[$tt]="${filename} ${myMap[$tt]} "
	done
fi

for key in ${!myMap[*]};do
  #将按月存放的源文件打成zip包,-q表示安静的执行,-m表示打包完成后删除源文件
  zip -rqm $to/$key.zip ${myMap[$key]}
done

参考:
linux find 命令查找文件和文件夹
linux shell获取当前文件的时间
Linux之shell脚本编程实例–遍历所有文件,并按月份打成zip包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值