linux复制更新的文件,实现文件系统增量更新功能

本文共有1056个字,关键词:

问题: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
版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。
添加新评论
暂无评论