用于搜索和复制文件类型的Shell脚本,其中包含日期名称

时间:2013-09-04 10:41:49

标签: shell search scripting copy

您好我正在编写一个脚本,该脚本将在其名称中搜索特定日期模式并将其复制到另一个位置。 例如。在“w”目录中,我有名字中有日期的文件

*20130822*
*20130823*
.
.
.
*20130828*

我想要的只是我可以给出开始日期,并希望脚本在该开始日期后的7天内复制文件。 你能给我一个脚本,它会找到这些文件并复制到一个专用目录中。

#!/bin/bash

dt=`date +%Y%m%d`
echo $dt
dt_to_be_checked=`date +%Y%m%d --date='13 days ago'`
echo $dt_to_be_checked

if test $dt -eq $`date +%Y%m%d`
then
  find /cygdrive/w/ -mtime -13 -name "*$dt*" | xargs cp 
  "_$dt_to_be_checked_$dt_to_be_checked" /cygdrive/c/KPI/;
fi

请帮忙

1 个答案:

答案 0 :(得分:0)

您尝试的内容与您描述的问题有很大不同。如果要在给定开始日期的情况下生成接下来n天的日期,请使用循环:

start="20130801"
for i in {1..7}; do 
  date +%Y%m%d --date="+${i} days ${start}"
done

执行上述位后,您将获得:

20130802
20130803
20130804
20130805
20130806
20130807
20130808