如何在Bash脚本中仅压缩运行报表的新文件?

时间:2009-06-30 15:48:20

标签: bash scripting shell

我正在编写一个脚本,它将查看自定义报告目录,将其复制到工作文件夹,以及它将查看的数据文件,运行报告,压缩新创建的文件,并将它们上传到另一个服务器。

我遇到的问题是我根本不知道新创建的文件是什么(也不是文件扩展名)。我想知道是否有一种压缩或找出新创建的文件的方式(与报告运行之前和之后相比)。

我会查看时间戳,然后将最新文件移动到某处以压缩它们,但是正在运行的报告可能会在不同时间创建多个文件(例如首先是电话报告文件,然后是数据报告)文件)。

关于如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:2)

与Tynan相似的想法:

touch report_start
./run_report
find $working_dir -type f -newer report_start | tar czf $archive
rm report_start

答案 1 :(得分:1)

您应该可以执行以下操作:

touch report_start
./run_report
for i in `ls -Rt`; do
    echo $i | grep report_start
    if [ $? -eq 0 ]; then
        break    
    fi
    cp $i reports
done
rm reports/report_start
tar xvzf reports.tar.gz reports
rm report_start

循环遍历目录中的每个文件,看它们是否比运行报表之前创建的文件更新,然后对结果进行压缩。