码迷,mamicode.com
首页 > 其他好文 > 详细

群晖照片视频整理归档-完结篇

时间:2020-03-07 22:32:27      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:href   bash   标准   鄙视   sqlite   ext   ace   variable   rem   

  • 闲暇之余 整理往日照片,历经了 exiv2 / exiftool 重命名、 SQLite 归档 和 人工识别 。
  • 群晖存储上有价值的文件名都已经格式化完毕,赶紧把它们 异地 备份一轮,脚本如下:
#!/bin/bash
# Copy.sh : Backup the files to remote storage.
readonly pDir="${1:-~/XiaoMi/Image/}"  # 照片文件备份路径
readonly vDir="${2:-~/XiaoMi/Video/}"  # 视频文件备份路径
readonly dDir="${3:-~/XiaoMi/Document/}" # 日志存储目录
readonly iLog="${dDir}Copy.log"  # 备份成功
readonly wLog="${dDir}Copy.wan"  # 已经存在
readonly eLog="${dDir}Copy.err"  # 无需备份和出错信息
readonly debug=false  # 调试开关,按需开启
readonly stdName="(^|[[:space:]])[2,1][0,9][0,1,2,7,9][0-9][0-1][0-9][0-3][0-9]-[0-2][0-9][0-5][0-9][0-5][0-9]($|[[:space:]])" # 标准格式
find ~{higkoo,anglix}/Drive/{Moments,Backup} ! -path "*@eaDir*" -type f | while read -r sPath; do
    unset fName sExt rCopy rCode nDir dPath
    sExt="${sPath##*.}" && sExt="${sExt,,}"
    [[ ${sExt} == "jpeg" ]] && sExt=‘jpg‘  # 将jpeg后缀改为jpg
    fName="${sPath##*/}" && fName="${fName%%.*}"
    if [[ $fName =~ $stdName ]]; then  # 识别文件名
        case $sExt in
            jpg | livp | heic | cr2 )
                nDir="${pDir}${fName:0:4}/"
                rCopy=true && rCode=‘+‘
            ;;
            mp4 | mov | m4v | wmv )
                nDir="${vDir}${fName:0:4}/"
                rCopy=true && rCode=‘-‘
            ;;
            png | * )  # 鄙视 png ,全是截图
                rCopy=false && rCode=‘*‘
            ;;
        esac
    else
        rCopy=false && rCode=‘/‘
    fi

    if [[ $rCopy && ! -z ${nDir} ]]; then
        dPath="${nDir}${fName}.${sExt}"
        if [[ ! -f "${dPath}" || `stat --printf=%s "${dPath}" 2>/dev/null` -lt `stat --printf=%s "${sPath}"` ]]; then
            mkdir -pv "${nDir}" >>  ${wLog}
            cp -v "${sPath}" "${dPath}" >>${iLog} 2>>${eLog} 
        else
            echo "$sPath" >> ${wLog} && rCode=‘^‘
        fi
    else
        echo "$sPath" >> ${eLog}
    fi
    echo -ne "$rCode"
    $debug && declare -p sPath dPath && exit 0
done
    • 照片体积小,相对容易移动、分享,所以和视频独立开、均按年分目录。
    • 脚本经过千锤百炼、始出来,让它跑一会:
      技术图片
    • 之前用exiv2重命名后备份过一次,所以不少^以示逃过。
    • +代表收获1张新照片,-代表收获1张新视频,/是不必备份的文件。
    • 至此,照片/视频整理工作完毕、剩下就是给它们安全的备份起来(略)。
    • 网络营销

群晖照片视频整理归档-完结篇

标签:href   bash   标准   鄙视   sqlite   ext   ace   variable   rem   

原文地址:https://www.cnblogs.com/1994july/p/12438843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!