写一个获取文件的sell脚本

如何用shell脚本指定一个时间,然后从指定的目录(包括其子目录)中获取该时间点之后的文件复制到另一目录中

执行命令
backup.sh /var/www/html /opt/backup 20220609

backup.sh文件如下


#!/bin/sh
 
show_usage() {
    echo "Usage: backup.sh src_folder bak_folder bak_date"
    echo ""
    echo "src_folder - source folder to backup"
    echo "bak_folder - backup folder"
    echo "bak_date   - backup date in YYYYMMDD format"
}
 
 
if [ $# -ne 3 ]; then
    show_usage
    exit 1
fi
 
src_folder="$1"
bak_folder="$2"
bak_date="$3"
 
bak_file="$bak_folder/backup.tar"
if [ -f $bak_file ]; then
    rm $bak_file
fi
 
tmpfile="`mktemp`"
touch -t ${bak_date}0000 $tmpfile
cd $src_folder
find . -name "*.py" -newer $tmpfile -exec tar rvf $bak_file {} \;
rm $tmpfile
 
echo "backup file: $bak_file"
ls -l $bak_file

#!/bin/sh
#BEGIN
    files=`find ./ -type f -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'`
    for i in $files
    do
      #-f指的时文件,-d则代表目录

    if [ -f $i ];then
      echo $i >> grepfiles.txt
    fi
    done
#END

该程序将会获得该目录下忽略子目录(以2开头的目录)的所有2001-01-01 00:00:00到2019-01-01 00:00:00的所有文件,并输入到grepfiles.txt的文件中

有点矛盾,正在执行的脚本获取当前时间之后的文件.....,当它执行的时候,时间必然是当前时间,怎么可能有当前时间之后的文件呢?
如果要做文件备份的话,建议用crontab + rsync 备份文件,简单有效,rsync也就一条命令的事,crontab 将该命令定时执行就可以了

 DATE=`date -d yesterday +%Y_%m_%d`
 echo $DATE
2022_06_09



 DATE=`date -d '1 month ago' +%Y_%m_%d`
 echo $DATE
2022_06_09