问题:linux下如何复制最近有更新的文件到另一个文件夹下?
解决:使用find加copy实现
方法:
#!/bin/bash
# 60天内
# find ./ -type f -mtime -60 | while read f
# 60分钟内
# find . -mmin -60 -type f | while read f
# 指定日期
find ./ -type f -newermt '2020-07-10 00:00' -a -not -newermt '2020-09-10 23:59' | while read f
do
filedir=`expr substr "$f" 2 ${#f}`
oldfiledir='/home/mantu'${filedir}
newfiledir='/home/mantu/newdata'${filedir}
echo ${oldfiledir}' copy to\n'${newfiledir}
mkdir -p -- "$(dirname -- "$newfiledir")" && cp -Rrf "$oldfiledir" "$newfiledir" ;
done
拓展:
如果只复制文件,不考虑层级可使用
find ./ -type f -newermt '2020-07-10 00:00' -a -not -newermt '2020-09-10 23:59' -exec cp {} /home/mantu/newdata \;
或
find . -mmin -60 -type f | xargs -i cp {} /home/mantu/newdata/
参考:
https://blog.csdn.net/terry_water/article/details/38272969
https://blog.csdn.net/weixin_41853257/article/details/80241348