开发者社区> 问答> 正文

SHELL脚获取目录下指定范围文件后打包。

在一个目录下,有很多文件,

EP035_top_16.01.13.2300.dat  EP035_top_16.01.15.1800.dat  EP035_top_16.01.17.1300.dat  EP035_top_16.01.19.0800.dat
EP035_top_16.01.14.0000.dat  EP035_top_16.01.15.1900.dat  EP035_top_16.01.17.1400.dat  EP035_top_16.01.19.0900.dat
EP035_top_16.01.14.0100.dat  EP035_top_16.01.15.2000.dat  EP035_top_16.01.17.1500.dat  EP035_top_16.01.19.1000.dat
EP035_top_16.01.14.0200.dat  EP035_top_16.01.15.2100.dat  EP035_top_16.01.17.1600.dat  EP035_top_16.01.19.1100.dat
EP035_top_16.01.14.0300.dat  EP035_top_16.01.15.2200.dat  EP035_top_16.01.17.1700.dat  EP035_top_16.01.19.1200.dat
EP035_top_16.01.14.0400.dat  EP035_top_16.01.15.2300.dat  EP035_top_16.01.17.1800.dat  EP035_top_16.01.19.1300.dat
EP035_top_16.01.14.0500.dat  EP035_top_16.01.16.0000.dat  EP035_top_16.01.17.1900.dat  EP035_top_16.01.19.1400.dat
EP035_top_16.01.14.0600.dat  EP035_top_16.01.16.0100.dat  EP035_top_16.01.17.2000.dat  EP035_top_16.01.19.1500.dat
EP035_top_16.01.14.0700.dat  EP035_top_16.01.16.0200.dat  EP035_top_16.01.17.2100.dat
EP035_top_16.01.14.0800.dat  EP035_top_16.01.16.0300.dat  EP035_top_16.01.17.2200.dat
EP035_top_16.01.14.0900.dat  EP035_top_16.01.16.0400.dat  EP035_top_16.01.17.2300.dat
文件的命名格式是 主机名,年。月。日。时分(16.1.14.2200),现在需要把一段时间内的文件提取出来,获取EP035_top_16.01.14.1800.dat  到  EP035_top_16.01.16.2200.dat 期间dat文件,打包压缩成tar.gz文件。写成shell脚本

展开
收起
a123456678 2016-06-15 16:10:51 2186 0
1 条回答
写回答
取消 提交回答
  • 文件生成时间 和 文件名的时间一致?
    
    如果是 则
    
    1.计算时间段: 输入参数: 起始时间、结束时间,格式:YYMMDD HH:MM 如160114 22:00
    
    date -d"20151229 10:27" +%s 获取秒值
    
    当前时间 - 起/止时间(单位秒数),除以60分别得到最大、最小时间(单位分钟)
    
    2.查找文件
    
    find . -cmin +最小分钟数 -cmin -最大分钟数 -maxdepth 1
    
    3.压缩文件
    
    tar -czvf 压缩名.tgz `find . -cmin +最小分钟数 -cmin -最大分钟数 -maxdepth 1`
    2019-07-17 19:39:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载